当我们将hibernate与spring集成时,我们通常实现@Repository spring注解使用的基于注解的方法。我了解到这样做的目的是为了消除我们 dao 中的 spring 依赖,并且由于 hibernate3 支持上下文会话来管理会话
@Repository
public class HibernateSpitterDao implements SpitterDao{
privateSessionFactorysessionFactory;
@Autowired
public HibernateSpitterDao(SessionFactory sessionFactory){
this.sessionFactory=sessionFactory;
}
private SessioncurrentSession(){
return sessionFactory.getCurrentSession();
}
...
}
例如,如果我们不使用基于注解的方法,我们的 dao 将直接依赖于 spring 特定的类,比如需要扩展 HibernateDaoSupport。
但是即使有了注释,DAO 仍然依赖于 Spring 知道吗?因为@Repository 是spring注解。我们不能完全独立于春天知道吗?它更像是依赖弹簧注释而不是依赖弹簧类,是吗?
我只是想一段时间后我们需要用其他东西来切换弹簧。在那种情况下,如果我们的 DAO 与 spring 的依赖关系为零,我们根本不需要接触我们的 DAO。