关于@Configuration, @ConfigurationProperties, @EnableConfigurationProperties 注解的使用与关系

  • @Configuration, @ConfigurationProperties, @EnableConfigurationProperties的功能

@Configuration是Spring的一个注解,作用就是说明这是一个bean,用于标记一个类为配置类,表示这个类中定义了一些配置信息,例如 bean 的定义、依赖关系等。通常,我们会在配置类中使用 @Bean 注解来定义 bean。配置类可以被 Spring 容器扫描到,并根据其中的配置信息来创建相应的 bean。配置类是 Spring Boot 中用于替代传统的 XML 配置文件的一种方式。

@ConfigurationProperties是 Spring Boot 提供的一个注解,用于将配置文件中的属性值绑定到一个 Java 对象上。使用 @ConfigurationProperties 注解,你可以创建一个 Java 类,并使用注解将其与配置文件中的属性进行绑定。在绑定过程中,Spring Boot 会自动将配置文件中对应的属性值赋给 Java 对象的相应字段或属性。

@EnableConfigurationProperties是 Spring Boot 提供的一个注解,用于启用 @ConfigurationProperties 注解的支持。在 Spring Boot 中,通过 @ConfigurationProperties 注解可以将配置文件中的属性值绑定到一个 Java 对象上。但是,默认情况下,这个绑定是需要手动进行的,即需要在配置类中使用 @EnableConfigurationProperties 注解来启用 @ConfigurationProperties 的支持。

  • 使用注意事项
    1、使用 @ConfigurationProperties时,从配置文件中读取的配置文件名称必须与java类中属性名称中保持一致才能从配置文件中读取数据映射到map,且在类中必须实现set方法。
    2、@Configuration与@EnableConfigurationProperties不能同时使用,一起用就会出现重复创建同一bean的现象。会报错:expected single matching bean but found 2:xxxxxx。同理@Component与@EnableConfigurationProperties也不能同时使用。@Configuration与@Component关系见另一篇文章,Spring的@Configuration注解和@Component 注解的关系

你可能感兴趣的:(java,spring,boot,spring)