@Value注解可以通过(${xxx.xxxx})来导入配置文件的值
但是在某些类中去不能导入值
关于这个问题查了一些资料找到可能的一个原因和解决办法:
@Value相当于一个注入bean,当我们的类引入这个bean后,我们的类被其他的类以new的方式声明调用的话,就会出现@Value注解取不到值的情况。
解决方法:我们的包含@value注解的类被调用是只能以注解的方式被调入,也就是依赖注入,@Autowired方式注入要调用的类中,这样@Value注解就能正常取值了。
来自:见32楼 http://bbs.csdn.net/topics/390936459#post-400897178
感谢@千寻的等待
2021.2.4修改:
经过学习对这个问题有了自己更深的理解: @Value注解是Spring的注解,是作用在springbean上的,我们通过依赖注入可以调用到完整的bean,但是如果是通过new的方式创建的对象,不在spring的管理周期内,需要spring注入的属性则无法注入,导致@Value注解失效