Witam,
Mam TaskDAOHibernate:
@Component
public class TaskDAOHibernate implements TaskDAO {
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
...
W kontrolerach mam np:
private ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
private TaskDAO taskDAO = context.getBean(TaskDAO.class);
i wszystko dziala dobrze.
Nie chcialem tworzyc nowego kontekstu z kazdym kontrolerem, wiec wymyslilem, ze zrobie @Autowired dla beanow:
public class Server {
//@Autowired
TaskDAO taskDAO;
W spring.xml:
<bean id="taskDAO" class="... .TaskDAOHibernate">
<property name="sessionFactory" ref="hibernate4AnnotatedSessionFactory"/>
</bean>
Spring ladnie wstrzykuje taskDAO, ale nie ustawia tam sessionFactory (jest null) i klasa Server nie moze korzystac z DAO. Co ciekawe, pozostale klasy korzystajace z DAO (te w ktorych tworze context i biore bean sam) dzialaja dobrze.
Co robie nie tak?