Spring Boot-@Value获取值和@ConfigurationProperties获取值的比较

@Value和@ConfigurationProperties都是用于属性的注入(相当于spring中Person类

@Component
@ConfigurationProperties(prefix = "person")
public class Person {private String lastName;private Integer age;private Boolean boss;private Date date;private Map<String,Object> map;private List<Object> list;private Student student;public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}

application.properties或者(application.yml)

person.last-name=张三
person.age=20
person.date=2000/10/10
person.boss=false
person.map.k1=v1
person.map.k2=v2
person.list=a,b,c
person.student.name=lisi
person.student.age=13

2.两者的比较

@ConfigurationProperties@Value
不支持SpEL支持SpEL
支持JSR303校验不支持
-批量注入配置文件的属性--一个一个指定-
支持松散语法不支持
支持复杂类型 如:Map集合不支持

如果我们只是在某个业务逻辑中获取一下配置文件中的某项值,就使用@Value
比如下面这段代码

@RestController
public class ValueController {@Value("${person.last-name}")private String name;@RequestMapping("/sayHello")public String sayHello(){return "hello"+name;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部