所谓注入,就是把一些属性的值注入到我们想要的组件中。
配置文件中定义想要注入的属性
server.port=8989
name=123
bir=2012/12/12 12:12:12 // springboot 支持日期格式,但格式限定较为严格
strs=aa,bb,cc // 数组中的元素用逗号分割
qqs=11,22,33 // 集合和数组的注入方式一致
maps={'aa':'11','bb':'22','cc':'33'}
使用 @Value(${xxx})
注解
@Value("${name}")
private String name;
@Value("${bir}")
private Date date;
@Value("${strs}")
private String[] strs;
@Value("${qqs}")
private List<String> qqs;
@Value("#{${maps}}") // 两边还要额外加上一层井号大括号
private Map<String, String> maps;
如果对象的属性非常多,使用 @Values 注解会变得很麻烦,我们使用另一种方式进行对象注入。
配置文件中定义想要注入的属性
user.id=111
user.age=222
使用 @ConfigurationProperties 注解
@Component // 之前的 @configuration 修改一下
@ConfigurationProperties(prefix = "user")
public class User {
引入依赖构建自定义注入元数据(作用主要是可以自动补全,IDEA 上方也不会有横条提示)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>