所谓注入,就是把一些属性的值注入到我们想要的组件中。

属性注入

  1. 配置文件中定义想要注入的属性

    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'}
    
    
  2. 使用 @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 注解会变得很麻烦,我们使用另一种方式进行对象注入。

  1. 配置文件中定义想要注入的属性

    user.id=111
    user.age=222
    
  2. 使用 @ConfigurationProperties 注解

    @Component // 之前的 @configuration 修改一下
    @ConfigurationProperties(prefix = "user")
    public class User {
    
  3. 引入依赖构建自定义注入元数据(作用主要是可以自动补全,IDEA 上方也不会有横条提示)

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-configuration-processor</artifactId>
        <optional>true</optional>
    </dependency>