Spring Boot: конфигурация, проверка @ConfigurationProperties
Spring Boot пытается проверять классы @ConfigurationProperties всякий раз, когда они аннотируются аннотацией Spring @Validated. Вы можете использовать аннотации ограничений JSR-303 javax.validation непосредственно в своем классе конфигурации. Для этого убедитесь, что совместимая реализация JSR-303 находится в вашем пути к классам, а затем добавьте аннотации ограничений к вашим полям, как показано в следующем примере:
@ConfigurationProperties(prefix="acme")
@Validated
public class AcmeProperties {
@NotNull
private InetAddress remoteAddress;
// ... getters и setters
}
Вы также можете запустить проверку, добавив аннотацию к методу @Bean, который создает свойства конфигурации с помощью @Validated.
Чтобы гарантировать, что проверка всегда запускается для вложенных свойств, даже если свойства не найдены, соответствующее поле должно быть аннотировано @Valid. Следующий пример основан на предыдущем примере AcmeProperties:
@ConfigurationProperties(prefix="acme")
@Validated
public class AcmeProperties {
@NotNull
private InetAddress remoteAddress;
@Valid
private final Security security = new Security();
// ... getters и setters
public static class Security {
@NotEmpty
public String username;
// ... getters и setters
}
}
Вы также можете добавить собственный Spring Validator, создав определение компонента с именем configurationPropertiesValidator. Метод @Bean должен быть объявлен как статический. Валидатор свойств конфигурации создается очень рано в жизненном цикле приложения, и объявление метода @Bean как статического позволяет создавать bean без необходимости создания экземпляра класса @Configuration. Это позволяет избежать проблем, которые могут быть вызваны ранним созданием экземпляра.
Модуль spring-boot-actuator включает в себя конечную точку, которая предоставляет все bean-компоненты @ConfigurationProperties. Укажите в веб-браузере
/actuator/configpropsили используйте эквивалентную конечную точку JMX.
Читайте также:
- Spring Boot: включение типов аннотированных @ConfigurationProperties
- Spring Boot: использование типов аннотированных @ConfigurationProperties
- Spring Boot: смягченная привязка
- Spring Boot: конфигурация, слияние сложных типов свойств
- Spring Boot: конфигурация, конвертация свойств
Комментарии
Отправить комментарий