8

休止状態を学習し、アプリサーバーの接続プールを使用するように設定するという私の現在の冒険では、そこにあるほとんどの例とリソースは、その過程でアプリサーバーの JNDI リソースに SessionFactory をバインドする方向を示しています。

これの利点は何ですか?これを行わなくても接続プールにアクセスできるためです。

4

1 に答える 1

10

何にでも JNDI を使用するのと同じ理由で、構成をアプリケーションからデプロイメント環境に移動します。

JNDI では、基本的に「このアプリケーションには が必要です。その名前は X にする必要があります」と言うと、アプリケーション サーバーに呼び出された X が構成SessionFactoryされている限り満足します。SessionFactoryこの種の外部化には、いくつかの魅力的な利点があります。

  1. マシンごとに非常に異なる構成を使用できます (本番環境と QA では Oracle を使用し、開発者は HSQL を使用するなど)。

  2. ビルド プロセスに構成を認識させる必要はありません ( ant war_for_qaMaven プロファイルをいじったりする必要はありません)。

  3. 構成をバージョン管理にチェックインしようとは思わないので、ライブ データベースのパスワードは、リポジトリにアクセスしたことがある (またはアクセスする予定の!) 派遣社員、インターン、コンサルタント、または元従業員のすべてに知られるわけではありません。

  4. インストール/構成の手順には、「データベース ログインを構成するには、WAR ファイル内のファイル foo.properties を編集する」などの項目が含まれていません。日曜日の午後にコーヒーがなくなったので、たまたま編集されていない WAR をデプロイしました。

JNDI はたまたま Java でこの外部化を行うための「標準的な」方法です。つまり、新しい開発者/管理者は、非常に巧妙な自作の構成システムの癖を学ぶために 2 日間のトレーニングを必要としません。しかし、この奇妙なバグには誰も掘り下げたくないという理由あります。

関連: JNDI の目的は何ですか?

于 2010-03-30T23:20:44.483 に答える