[解決済み] web.xmlのresource-refは何のためにあるのですか?
質問
私は、あなたがいつ、どのような理由で
<resource-ref>
要素の中で
web.xml
というファイルを作成できますか?
私は、JNDI を使用して Web/app サーバーで定義し、Java コードで JNDI 参照を検索するものと思っていました。
resource-ref の定義は、私には少し冗長に感じられ、それがいつ役に立つのか思いつきません。例として
<resource-ref>
<description>Primary database</description>
<res-ref-name>jdbc/primaryDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER</res-auth>
</resource-ref>
どのように解決するのですか?
アプリケーション内のリソースを、コンテナで設定された JNDI 名で直接参照することは常に可能ですが、そうすると、本質的に、コンテナ固有の名前をコードに配線することになります。これにはいくつかの欠点があり、たとえば、何らかの理由で後で名前を変更したくなった場合、すべてのアプリケーションのすべての参照を更新し、それらを再構築して再デプロイする必要があります。
<resource-ref>
は、もうひとつの間接的なレイヤーを導入します。
web.xml
で使用したい名前を指定し、コンテナによっては、バインディングを
コンテナ固有の
設定ファイルでバインディングを提供します。
そこで
はこうなります
: 例えば、あなたが検索したいのは
java:comp/env/jdbc/primaryDB
という名前になります。コンテナが見つけたのは
web.xml
には
<resource-ref>
要素に
jdbc/primaryDB
というように、コンテナ固有の設定を調べるので、以下のような内容が含まれます。
<resource-ref>
<res-ref-name>jdbc/primaryDB</res-ref-name>
<jndi-name>jdbc/PrimaryDBInTheContainer</jndi-name>
</resource-ref>
最後に、以下の名前で登録されたオブジェクトを返します。
jdbc/PrimaryDBInTheContainer
.
アイデア でリソースを指定することです。 web.xml を分離する利点があります。 デベロッパー の役割から デプロイメント の役割から切り離されます。言い換えれば、開発者として、必要なリソースが実運用環境で実際にどう呼ばれているかを知る必要はなく、アプリケーションをデプロイする人として、実際のリソースにマッピングするための素敵な名前のリストを持つことになります。
関連
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Junitのユニットテストエラー
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
NullPointerException - java.lang.
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
Javaでよくある構文エラー
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
シェルコマンドやスクリプトのJavaコール
-
SocketException java.netの4つの例外解決策。
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
テストが空であるかどうかを判断するためのオプションの処理