我有一个通用的基础dao类,在其中实现了一些适用于所有dao的通用方法。
<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>
一开始,我使用依赖注入将 sessionFactory
注入到每个单独的 dao 中,但后来我实现了一个基础 dao,并让每个其他的 dao 继承这个基础 dao。
然而,在更改之后,每当我从其中一个 dao 调用 getSessionFactory()
时,返回值却是 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();
...
}
...
}