@Component || @Controller || @Service
@Configuration
@ConfigurationProperties
@EnableConfigurationProperties
以上注解的关系梳理:
@Component || @Controller || @Service 用来定义spring的bean。
作用
@EnableConfigurationProperties的作用: 使@ConfigurationProperties 注解的类生效。
正确的bean的属性配置加载
@Data
@Component
@ConfigurationProperties(prefix = "yyzx.properties")
public class AnnotationDesc {
}
错误A bean的属性配置加载
@Data
@ConfigurationProperties(prefix = "yyzx.properties")
public class AnnotationDesc {
// 该书写方式,属性值注入失败
}
纠正: 错误A bean的属性配置加载
@Data
@ConfigurationProperties(prefix = "yyzx.properties")
public class AnnotationDesc {
// 该书写方式,属性值注入成功
}
@Slf4j
@Configuration
@EnableConfigurationProperties({
AnnotationDesc.class,
YyzxProperties2.class
})
public class SpringBootPlusConfig {
}
结果
如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。
@EnableConfigurationProperties 是把指定类的属性又注入了一次。