项目中经常会经常读取配置文件中的属性的值,Spring Boot提供了很多注解读取配置文件属性,那么如何正确使用呢?
@Value@Value用来读取application.yml配置文件中属性的值。
示例代码application.yml文件中属性:
@value读取application.yml属性值:
测试:
运行结果:
特别注意:
@Value不能将属性值读取静态变量,否则读取的值为空。@Value不能将属性值读取常量,否则读取的值为空。@Value不能读取boolean类型的值,经过测试Spring Boot2.1的版本是无效的,2.2以上版本支持。所以个人建议非必要情况,尽量少用@Value注解读取属性值。
@ConfigurationProperties读取配置文件值并且转换成类对象,便于获取值和修改属性值。
示例代码application.yml文件中属性:
@ConfigurationProperties读取application.yml中以http.pool开头的属性值:
测试:
属性嵌套:
@ConfigurationProperties 可以嵌套List、map、class
特别注意:
默认情况不会将实体注入到spring的容器中,需要结合@EnableConfigurationProperties或者@Component一起使用,否则注入对象为空。 @EnableConfigurationProperties将@ConfigurationProperties读取对象注入到spring容器中。例如上述示例也可以采用@EnableConfigurationProperties 来注入
@ConfigurationPropertiesScan用来扫描@ConfigurationProperties实体类并将类注入到Spring容器,上述示例可以如下使用
@PropertySource@PropertySource 主要用于读取指定的配置文件,需要结合@ConfigurationProperties 注解一起使用实现配置文件和Java Bean的注入操作。
示例代码属性文件user.properteis:
实体类定义:
测试:
输出结果:
总结重点讲解了通过各种注解读取配置文件种属性值,每种方式都是各自的优缺点,项目中一定要统一规范使用,便于项目维护和排查问题。
到此这篇关于Spring Boot 如何正确读取配置文件属性的文章就介绍到这了,更多相关Spring Boot 读取文件属性内容请搜索七叶笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持七叶笔记!