【SpringBoot】@ConfigurationProperties和@Value
程序员文章站
2024-01-08 10:59:04
...
@ConfigurationProperties
告诉SpringBoot将本类中的所有属性和配置文件相关的配置进行绑定。
- 属性值: prefix = “person”:配置文件中哪个下面的所有属性进行一一映射
- 例子:
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birht;
private Map<String,Object> maps;
//此处省略getter()、setter()、toString()等方法
}
person:
lastName: zhangsan
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v2,k2: v2}
lists:
-list
-zhaoliu
- 返回结果
Person{lastName='张三', age=18, boss=false, birht=Tue Dec 12 00:00:00 CST 2017, maps={k1=v1, k2=14}, lists=[a, b, c]}}
- 总结:如果注解使用在类上,注解中需要注明prefix属性,告诉SpringBoot,配置文件中哪个下面的所有属性都进行一一映射。
@Value
@Component
@Validated
public class Person {
@Value("${person.lastName}")
private String lastName;
@Value("#{11*2}")
private Integer age;
private Boolean boss;
private Date birht;
private Map<String,Object> maps;
private List<Object> lists;
person:
lastName: zhangsan
age: 18
boss: false
birth: 2017/12/12
maps: {k1: v2,k2: v2}
lists:
-list
-zhaoliu
- 结果:
Person{lastName='zhangsan', age=22, boss=null, birht=null, maps=null, lists=null, dog=null}
- 总结:@Value会取出配置文件中的每一个内容,分别放入对应的属性中。
比较
@ConfigurationProperties | @Value | |
---|---|---|
源头 | SpringBoot定义的注解 | Spring定义的注解 |
功能 | 批量注入配置文件中的属性 | 一个个指定 |
松散绑定(松散语法) | 支持 | 不支持 |
SpEL | 不支持 | 支持 |
JSR303数据校验 | 支持 | 不支持 |
复杂类型封装 | 支持 | 不支持 |
下一篇: GPIO相关
推荐阅读
-
springboot2.0整合mongoDB进行增删改查和聚合,分页
-
Python从单元素字典中获取key和value的实例
-
SpringBoot 之 @Transaction注解的类级别和方法级别的区别
-
springboot项目打包部署和删除
-
springboot 集成activeMQ实现消息队列和双向队列
-
idea打包SpringBoot项目打包成jar包和war
-
SpringBoot 定时任务的两种实现方法(Scheduled和quartz)以及InitializingBean接口的作用
-
通过@PropertySource和@ConfigurationProperties来加载(读取)自定义配置文件
-
ymal通过@ConfigurationProperties和@value配置方式注入
-
SpringBoot学习(四)配置文件值注入 @ConfigurationProperties和@Value两种方式区别