Ich habe eine generische Basis Dao-Klasse, in der ich einige generische Methoden für alle Daos implementiert.Spring Abhängigkeitsinjektion funktioniert nicht mit Vererbung
<bean id="baseDAO" class="com.db.dao.BaseDao">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="userDAO" class="com.db.dao.UserDao"></bean>
<bean id="notesDAO" class="com.db.dao.NotesDao"></bean>
Zunächst ich wurde mit der Dependency Injection sessionFactory
zu jedem einzelnen dao zu injizieren, aber später habe ich eine Basis dao umgesetzt und hatte alle andere daos diese Basis dao zu verlängern.
Allerdings, nach der Änderung, wenn ich getSessionFactory()
von einem der daos aufrufen, bekomme ich null
als Rückkehr. Die Änderung macht für mich Sinn, aber ich kann nicht herausfinden, warum es null
zurückgeben würde, da ich die factorySession
in der Basis injiziert hatte.
BaseDao
public class BaseDao<T> {
private SessionFactory sessionFactory;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
...
}
UserDao
public class UserDao extends BaseDao<User> {
public User read(String userName) {
Session session = getSessionFactory().getCurrentSession();
session.beginTransaction();
...
}
...
}
Bitte poste etwas Code. BaseDAO und ein "Kind" DAO wäre nett –
http://stackoverflow.com/questions/22599238/how-to-turn-on-springs-component-scan-debugging-info Dies wird Ihnen sagen, wenn der Scan abholt was Sie denken, dass es abholen sollte – efekctive