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