1

Hibernateを使用しているSpringMVCアプリケーションがあります。DaoメソッドでsessionFactory.getCurrentSessionを使用しています(休止状態のサポートではありません)。

私が知りたいのは、非WebアプリケーションでHibernateデータベースレイヤーを使用できるようにするために何をする必要があるかということです。

Springのアプリケーションコンテキストをプログラムでロードしてからサービスレイヤー(休止状態のdbレイヤーに依存)を取得するスタンドアロンのJavaアプリケーション(main経由で実行)があります。hibernateのセッションをセットアップするために、spring.xmlファイルで何か特別なことをする必要がありますか?

私のSpringMVCWebアプリでは、Daoメソッドに@Transactionalアノテーションを付けました。(db呼び出しのグループではなく、呼び出しごとにトランザクションが必要です)。

PS私のWebアプリでは、セッションはどのように作成/破棄されますか?それはリクエストごとですか?

4

1 に答える 1

3

メインメソッドApplicationContextからスプリングを手に入れることができます。Webのものとまったく同じように動作します。

ApplicationContext context = new  ClassPathXmlApplicationContext("applicationContext.xml");
YourDAO yDao = (YourDAO)context.getBean("yourDAO");
yDao.callYourSpecialMethod();

したがって、この時点から休止状態に依存することはなく、自動的に機能するはずです。ここでは、ビューのみが変更され、論理的または構造的な変更はありません。したがって、トランザクションやその他のものは通常どおりに機能するはずです。

于 2012-04-27T14:30:39.080 に答える