有关SpringBoot架构中yml配置文件的两种读取方式:
@ConfigurationProperties @Value
但是在使用之前必须用@Component/@Configuration使其成为Spring容器的组件,这样Spring才能为它注入值。
直白的说Component包含了Configuration的所用注解:
Configuration和Component都是注解在类上的,
Configuration类中的方法成员变量是@Value注解,方法上的注解是@Bean
Component类中的方法和成员变量没有任何限制
详见 https://blog.csdn.net/zero__007/article/details/78407008
区别:
- 两者都可以从配置文件 .yml 与 .properties 中获取到值;
- 如果项目中只是在某个业务逻辑中需要获取一下配置文件中的某项值,使用@Value即可;
- 如果项目中专门编写了一个JavaBean来和配置文件进行映射,则直接使用@ConfigurationProperties即可。
(1)所谓松散语法也就是属性命名规则(Relaxed binding)
- person.firstName:使用标准方式
- person.first-name:大写用-
- person.first_name:大写用_
- PERSON_FIRST_NAME: 系统属性推荐使用这种写法
假设application.properties文件中有字段 persion.first-name,则要使用@ConfigurationProperties
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String firstName;
}
(2)JSR303数据校验(@Validation)
例如@NotNull,@NotEmpty,@NotBlank,@Max等,还可以自己定义
详见 https://www.cnblogs.com/baizhanshi/p/8109072.html
(3)SpEl