2015-10-12 2 views
0

EDIT: Мой вопрос не о том, почему Spring bean имеет значение null, но о том, почему унаследованный bean-значение null? Предлагаемый ответ объясняет, почему новый оператор не работает с автопостановкой. Но мой вопрос касается наследования. У меня есть два класса:java унаследовала весну автоволновое имущество null

@Transactional 
public class A { 

    @Autowired 
    protected SessionFactory sessionFactory; 

    //other methods 
} 

public class B extends A { 

    Session session = sessionFactory.getCurrentSession(); 

    //other methods 
} 

In 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(((
?

Что я делаю неправильно, я должен иметь доступ к телу в, и к свойствам превосходящего класса Bean SessionFactory работает:.

ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml"); 
     SessionFactory sessionfactory = (SessionFactory) context.getBean("sessionFactory"); 
     Session session = sessionfactory.getCurrentSession();//works 
+2

Как свойство propertyA должно быть null, когда оно объявлено как примитив? Кажется странным! – Abubakkar

+1

он должен работать нормально .. у вас есть некоторые другие ошибки, я думаю – stinepike

+0

Поместите некоторый реальный код, чтобы мы могли проверить вашу проблему. – khelwood

ответ

0

Если вы получаете NPE, то это потому, что sessionFactory не вводили, вместо этого у вас нет доступа к sessionFactory.

Если вы можете получить экземпляр sessionFactory после загрузки контекста приложения, то этот компонент настроен правильно.

Таким образом, я считаю, что ваша проблема должна быть связана с конфигурацией аннотаций с автосохранением. У вас есть <context:annotation-config /> в контексте вашего приложения? или у вас есть компонент класса org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor, определенный в контексте вашего приложения? - Имеет ли ваш beans-узел xml

Смежные вопросы