«1. Введение

В этом кратком руководстве мы покажем, как использовать аннотацию @EnableConfigurationProperties с аннотированными классами @ConfigurationProperties.

2. Назначение аннотации @EnableConfigurationProperties

Аннотация @EnableConfigurationProperties строго связана с @ConfiguratonProperties.

Это включает поддержку аннотированных классов @ConfigurationProperties в нашем приложении. Однако стоит отметить, что в документации Spring Boot говорится, что каждый проект автоматически включает @EnableConfigurationProperties. Поэтому поддержка @ConfiguratonProperties неявно включена в каждом приложении Spring Boot.

Чтобы использовать класс конфигурации в нашем проекте, нам нужно зарегистрировать его как обычный bean-компонент Spring.

Прежде всего, мы можем аннотировать такой класс с помощью @Component. В качестве альтернативы мы можем использовать фабричный метод @Bean.

Однако в определенных ситуациях мы можем предпочесть сохранить класс @ConfigurationProperties как простой POJO. Вот когда @EnableConfigurationProperties пригодится. Мы можем указать все компоненты конфигурации непосредственно в этой аннотации.

Это удобный способ быстро зарегистрировать аннотированные компоненты @ConfigurationProperties.

3. Использование @EnableConfigurationProperties

Теперь давайте посмотрим, как использовать @EnableConfigurationProperties на практике.

Во-первых, нам нужно определить наш пример класса конфигурации:

@ConfigurationProperties(prefix = "additional")
public class AdditionalProperties {

    private String unit;
    private int max;

    // standard getters and setters
}

Обратите внимание, что мы аннотировали AdditionalProperties только с помощью @ConfigurationProperties. Это все еще простой POJO!

Наконец, давайте зарегистрируем наш компонент конфигурации, используя @EnableConfigurationProperties:

@Configuration
@EnableConfigurationProperties(AdditionalProperties.class)
public class AdditionalConfiguration {
    
    @Autowired
    private AdditionalProperties additionalProperties;
    
    // make use of the bound properties
}

Вот и все! Теперь мы можем использовать AdditionalProperties, как и любой другой bean-компонент Spring.

4. Заключение

В этом кратком руководстве мы представили удобный способ быстрой регистрации аннотированного класса @ConfigurationProperties в Spring.

Как обычно, все примеры, использованные в этой статье, доступны на GitHub.