hibernate を spring と統合する場合、通常は @Repository spring アノテーションによるアノテーション ベースのアプローチを実装します。私は、私たちのdaoの春の依存関係を排除するために、そしてhibernate3がセッションを管理するためのコンテキストセッションをサポートしているので、それを行う目的を学びました
@Repository
public class HibernateSpitterDao implements SpitterDao{
privateSessionFactorysessionFactory;
@Autowired
public HibernateSpitterDao(SessionFactory sessionFactory){
this.sessionFactory=sessionFactory;
}
private SessioncurrentSession(){
return sessionFactory.getCurrentSession();
}
...
}
たとえば、アノテーション ベースのアプローチを使用しない場合、dao は、HibernateDaoSupport を拡張する必要があるなど、Spring 固有のクラスに直接依存します。
しかし、注釈があっても、DAO は Spring に依存しています。@Repository はスプリング アノテーションであるためです。スプリングノウと完全に独立することはできませんか?スプリングクラスに依存するよりも、スプリングアノテーションに依存する方がいいですね。
しばらくして、スプリングを別のものに切り替える必要があると思っていました。その場合、DAO がスプリングとまったく依存していない場合、DAO にまったく触れる必要はありません。