问题描述:
在一些工具类中可能会用到Ioc容器中的对象,而工具类中的成员变量往往是静态的,此时使用@Autowired注解就会出现NullpointerException。
就像下面这样:
public class Util {
@Autowired
private static SessionFactory sessionFactory;
}
解决方案:
采用一个曲线救国的方案,使用set方法进行注入。
public class Util {
private static SessionFactory sessionFactory;
@Autowired
public void setSessionFactory(SessionFactory sessionFactory) {
HBUtil.sessionFactory = sessionFactory;
}
}
注意:set方法不要是静态的!!!!
本文介绍了解决在工具类中使用@Autowired注解与静态变量冲突的问题。通过使用set方法而非直接在成员变量上使用@Autowired注解,可以避免出现NullPointerException。文中提供了一个具体的例子来说明如何实现。
3923

被折叠的 条评论
为什么被折叠?



