@Configuration @ConfigurationProperties @EnableConfigurationProperties @EnableAutoConfiguration 的区别与使用场景
@ConfigurationProperties
@ConfigurationProperties 注解是读取配置文件(properties、yaml等)中的内容与javabean做绑定,
但单纯使用@ConfigurationProperties注解并不会将绑定的javabean注入spring容器,需要以下之一的注解联用方可:
@Configuration、@Component、@EnableConfigurationProperties(类名.class)
其中,@Configuration、@Component与@ConfigurationProperties配置在一个类中
@EnableConfigurationProperties(类名.class)不可与@ConfigurationProperties配置在一起,且类名为@ConfigurationProperties修饰的类名
@Configuration
@Configuration注解修饰某个类,表示这个类是个配置类,将这个类,或者这个类的方法返回对象(@Bean修饰)放入spring容器中管理
@EnableConfigurationProperties
@EnableConfigurationProperties 使@ConfigurationProperties 生效,并加入到spring容器中管理
@EnableAutoConfiguration
@EnableAutoConfiguration:是一个加载Starter目录包之外的需要Spring自动生成bean对象(是否需要的依据是"META-INF/spring.factories"中org.springframework.boot.autoconfigure.EnableAutoConfiguration后面是有能找到那个bean)的带有@Configuration注解的类。一般就是对各种引入的spring-boot-starter依赖包指定的(spring.factories)类进行实例化。