Hibernate を使用していくつかのエンティティを管理し、これらのオブジェクトを操作して追加のビジネス ロジックを提供するための REST インターフェイスを提供する単純な Java テスト プロジェクトを開始しました。REST インターフェイスは、RESTEasy と Jetty を使用して作成されます。
これまでのところすべて正常に動作していますが、実際にはボイラープレート コードを書きすぎているように感じます。私はこれらの Java フレームワークの経験があまりないので、誰かが状況を改善する方法についてヒントをくれないかと思っています。
- リクエストごとの Hibernate セッションの作成
まあ、私が理解している限り、リクエストごとに Hibernate セッションを作成する必要があり、最後にそれを閉じる必要があります。したがって、現在、私のサービスメソッドはすべて次のようになっています。
Session session = HibernateUtil.getInstance().getSessionFactory().openSession();
...
...
...
session.close();
どういうわけかこれを自動的に行うために、これらの2行を削除する方法はありますか? 現在、私のサービスは RestEASY シングルトンとして登録されています。RESTeasy リソースに変更し、コンストラクターでセッションを作成すると、問題は解決しますか? セッション作成の問題は解決すると思います。しかし、どこでそれを閉じるのですか?
C++ では、最後にセッションを閉じるスコープ オブジェクトを作成することで、これを簡単に行うことができます。しかし、Javaでは?
- このような REST 要求が行われるたびに、有効なセッションを確認する必要があります (ユーザーは以前にログインする必要があります)。ServletFilter はこれを行う正しい方法ですか?
一般: 他に使用を検討すべきパターンやフレームワークはありますか? つまり、できるだけシンプルに保ちたいということです。特に、経験があまりないので、Spring や重いフレームワークを使いたくないということです。私は Python と Django の単純さに慣れているようですが、この小さなプロジェクトでは Java を使用する必要があります。
今までありがとう!