总结 @Value 的几种常见用法

1.属性注入

    @Value("${value.name}")
    private String valueName;

2.属性注入(带默认值)

冒号后是默认值。

    @Value("${value.name:qingquanyingyue}")
    private String valueName;

3.数组属性注入

配置项 引入:

    value:
      name: 1,2,3
  @Value("${value.name:0,1,2}")
  private String[] valueName;

4.列表属性注入

springboot 2.4.x以上的版本可以复用上述3的方式,更早版本需要以下方式:

    @Value("#{'${value.name}'.split(',')}")
    private List valueName;

5.注入 bean

一般我们注入类都用 @Autowired或者@Resource,但 @Value 也可以,就是显得比较叛逆;

同时该方法也可以只获取bean的属性值:

public class TestController {

    # 注入 bean
    @Value("#{proConfigure}")
    ProConfigure proConfigure;

    # 获取 bean 属性值
    @Value("#{proConfigure.name}")
    private String name;

    @GetMapping(value = "/config")
    public String config() {
        return proConfigure.getName();
    }

    @GetMapping(value = "/name")
    public String name() {
        return name;
    }
}