先说作用:

@EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效。

说明:

如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。说白了 @EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入。

测试证明:

@ConfigurationProperties 与 @EnableConfigurationProperties 的关系。

@EnableConfigurationProperties 文档中解释:
当@EnableConfigurationProperties注解应用到你的@Configuration时, 任何被@ConfigurationProperties注解的beans将自动被Environment属性配置。 这种风格的配置特别适合与SpringApplication的外部YAML配置进行配合使用。

测试发现:

1.使用 @EnableConfigurationProperties 进行注册

@ConfigurationProperties(prefix = "service.properties")
public class HelloServiceProperties {private static final String SERVICE_NAME = "test-service";private String msg = SERVICE_NAME;set/get
}
@Configuration
@EnableConfigurationProperties(HelloServiceProperties.class)
@ConditionalOnClass(HelloService.class)
@ConditionalOnProperty(prefix = "hello", value = "enable", matchIfMissing = true)
public class HelloServiceAutoConfiguration {}
@RestController
public class ConfigurationPropertiesController {@Autowiredprivate HelloServiceProperties helloServiceProperties;@RequestMapping("/getObjectProperties")public Object getObjectProperties () {System.out.println(helloServiceProperties.getMsg());return myConfigTest.getProperties();}
}

自动配置设置

service.properties.name=my-test-name
service.properties.ip=192.168.1.1
service.user=kayle
service.port=8080

一切正常,但是 HelloServiceAutoConfiguration 头部不使用 @EnableConfigurationProperties,测访问报错。

2.不使用 @EnableConfigurationProperties 进行注册,使用 @Component 注册

@ConfigurationProperties(prefix = "service.properties")
@Component
public class HelloServiceProperties {private static final String SERVICE_NAME = "test-service";private String msg = SERVICE_NAME;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}}

Controller 不变,一切正常,如果注释掉 @Component 测启动报错。

由此证明,两种方式都是将被 @ConfigurationProperties 修饰的类,加载到 Spring Env 中。

关于@EnableConfigurationProperties 注解相关推荐

  1. Spring Boot 关于 @EnableConfigurationProperties 注解 —— 使用 @ConfigurationProperties 注解的类生效。

    先说作用: @EnableConfigurationProperties注解的作用是:使用 @ConfigurationProperties 注解的类生效. 说明: 如果一个配置类只配置@Config ...

  2. @EnableConfigurationProperties 注解和@ConfigurationProperties注解实现配置绑定

    ConfigurationProperties注解主要用来把properties配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@Config ...

  3. Spring : @EnableConfigurationProperties注解

    1.美图 2.概述 @EnableConfigurationProperties注解的作用是让使用@ConfigurationProperties注解的类生效.你可以通过在@EnableConfigu ...

  4. @EnableConfigurationProperties 注解

    关于YAML与Properties文件中的key 与 JavaBean 中属性的对应关系,观测源代码 ConfigurationPropertyName.elementEquals 方法得知,有以下几 ...

  5. @EnableConfigurationProperties注解

    目录 1.概述 2.测试 2.1 使用 @EnableConfigurationProperties 进行注册 2.2 使用 @Component 注册 3.项目中的使用场景 1.概述 @Enable ...

  6. 关于 @EnableConfigurationProperties 注解

    先说作用: @EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效. 说明: 用springboot开发的过程 ...

  7. SpringBoot - @EnableConfigurationProperties注解使用详解

    @EnableConfigurationProperties注解的作用是什么? 将标注了@ConfigurationProperties注解的类注入到Spring容器中.该注解是用来开启对@Confi ...

  8. SpringBoot之@EnableConfigurationProperties分析

    我们在用SpringBoot进行项目开发的时候,基本上都使用过@ConfigurationProperties这个注解,我们在之前的文章中也说过ConfigurationPropertiesBindi ...

  9. SpringBoot @Value、 @ConfigurationProperties 与 @EnableConfigurationProperties 使用

    文章目录 @Value 用法 @Value("#{}") @Value("${}") ConfigurationProperties 用法 使用@Compone ...

最新文章

  1. iOS 疑难杂症— — 收到推送显示后自动消失的问题
  2. stm32f4 hs 电路_三相电路分析
  3. 12/100. Diameter of Binary Tree
  4. C++11之std::async使用介绍
  5. java set去重复元素_java List去掉重复元素的几种方式
  6. -%3erow mysql_MySQL查询优化
  7. Jsoup 数据修改
  8. String常用方法大全(深入源码层面分析)
  9. x内存满白苹果解决_iphone12pro max无限白苹果重启怎么办
  10. React 组件间通讯
  11. caffe---验证码识别
  12. [链接汇总]在用Matlab解微分方程时比较有用
  13. 谷粒学院(十九)统计分析模块 | 定时任务 | echarts
  14. 分享133个ASP源码,总有一款适合您
  15. 南阳oj入门题-蛇形填数
  16. Spring @Value读取配置文件
  17. 理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器
  18. @EnableConfigurationProperties注解
  19. orgchart组织机构图
  20. 手握N段大厂实习经历的人生有多爽?

热门文章

  1. File “h5py\h5.pyx“, line 1, in init h5py.h5 ImportError: DLL load failed whi
  2. CPU load高但CPU usage低问题排查
  3. 计算机网络之实验四---WEB 服务器配置与 HTTP 分析
  4. windows蓝屏错误小全
  5. php 元旦祝福,元旦祝福语 2019迎接2020句子
  6. MC7812BTG详细参数介绍
  7. 图说大型网站的技术架构
  8. 旧金山州立大学计算机科学专业,旧金山州立大学
  9. 笔记本电脑的计算机配置在哪里可以找到,如何查看笔记本电脑的配置?笔记本配置查看方法...
  10. 200亿元输血求生,中芯国际希望几何?