编辑:我的问题不是Spring为什么是空的,而是为什么继承的是空的?建议的答案解释了为什么新的运算符不适用于自动装配。但我的问题是关于遗产。我有两门课:
@Transactional
public class A {
@Autowired
protected SessionFactory sessionFactory;
//other methods
}
public class B extends A {
Session session = sessionFactory.getCurrentSession();
//other methods
}在Main.java中,我得到了NPE -B类不能访问属性A((我不明白为什么)()
A inst1 = new B(); - dont have access to body of B.
B inst2 = new B(); - inside class B sessionFactory is null(((我做错了什么?我需要获得B的身体和上级阶级的属性。Bean sessionFactory正在工作:
ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
SessionFactory sessionfactory = (SessionFactory) context.getBean("sessionFactory");
Session session = sessionfactory.getCurrentSession();//works发布于 2015-10-12 15:12:54
如果您正在获得NPE,是因为sessionFactory没有被注入,而是您无法访问sessionFactory属性。
如果您可以在加载应用程序上下文之后获得sessionFactory实例,那么这个bean是正确配置的。
因此,我认为您的问题必须与自动批注配置有关。您的应用程序上下文中有<context:annotation-config />吗?或者您是否在应用程序上下文中定义了类org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor的bean?
https://stackoverflow.com/questions/33084023
复制相似问题