Spring中@Autowired注入static静态变量问题
一. 发现问题
在使用框架写项目时,可能会遇到某些静态方法需要依赖被容器管理的类,如下所示
1 | public class Test { |
但是运行起来后,会报 java.lang.NullPointerException
异常。
这是因为 静态变量
、类变量
不是对象的属性,而Spring注入的是在容器内的 实例化对象
,因此会导致无法注入。
一般来说,不建议在静态方法中调用Spring的实例对象,但是非要用不可呢?
二. 解决方法
1 |
|
当我们把Test类放入容器管理(注意这点,否则依旧会报错),通过方法来注入时即可解决问题。
当然,如果你有更好的方法,可以在下方评论!
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 515code-实验室!
评论