参考链接

参考链接1

记录

  1. 原因分析:
    工具类一般都是静态类,提供的变量也是静态变量。
    @value只能给普通变量注入值,不能给静态变量注入值。
  2. 延伸:
    静态变量是一个类的属性,不是对象的属性。
    spring的依赖注入是基于对象层面的。
    静态变量在变量创建前就已经分配过内存了,而spring注入是在创建对象的时候注入的。
  3. 解决方法:
    set 方法是非静态的,在类上补充@Component
    private static String namespace;
    
    @Value("${nacos.namespace}")
    public void setNamespace(String namespace){
        NacosUtil.namespace=namespace
    }