首先知道 @ConfigurationProperties是干嘛的?
通过名字知道是配置属性,告诉springboot将该类中的属性和配置文件中的属性相互绑定。
通过查找前缀prefix来给属性赋值,如果前缀不写,那么对象属性就为空,因为找不到属性。
(只有容器中的组件才可以使用@ConfigurationProperties功能,所以要加@component)
@Component
@ConfigurationProperties(prefix="person")
public class Person {
}
功能:支持批量注入文件属性,JSR303校验,复杂类型(map,list)等
JSR303校验,要添加@Validated和要验证的注解
@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
@Email
private String lastName;
@Value()相当于spring中的 bean管理
@Component
public class Person {
/**@Value相当于
* <bean class="Person">
* <property name="lastName" value="字面量/${key}从环境变量/#{spEL}"></property>
* </bean>
*/
@Value("${person.last-name}")
private String lastName;
@Value("#{11*2}")
private Integer age;
@Value("true")
private Boolean boss;
功能:单个指定,支持spel表达式