私はすべてのdaosに対していくつかの一般的なメソッドを実装した汎用base daoクラスを持っています。Spring依存性注入が継承で機能しない
<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>
最初に、私はすべて単一DAOにsessionFactory
を注入する依存性注入を使用していたが、後に、私は、ベースDAOを実装し、このベースDAOを拡張する他のすべてのDAOSを持っていました。
ただし、変更後、私がをdaosの1人から電話するたびに、null
が返されます。変更は私には意味がありますが、なぜnull
を返すのかわかりません。factorySession
をベースに注入しています。
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();
...
}
...
}
いくつかのコードを投稿してください。 BaseDAOと "子" DAOはうまくいくでしょう –
http://stackoverflow.com/questions/22599238/how-to-turn-on-springs-component-scan-debugging-infoこれは、スキャンが実行されているかどうかを示しますあなたはそれをピックアップする必要があると思います – efekctive