0

初めてJNDIを使い始めたばかりです。Tomcat にデプロイされた Spring Mvc を使用して Web アプリケーションを開発し、Mysql データベースに接続しています。

私の理解では、JNDI データソースを使用する理由は、アプリケーションをローカルおよびライブ サーバーで実行するときに別のデータベースに接続したいが、これを行うために構成を変更する必要はありません。JNDI からデータ ソースを取得すると、別のマシンで別のデータ ソースが得られます。

私の質問は、Java オブジェクトにどの JNDI コンテキストを使用すればよいか分からないということです。私がオンラインで見つけた例の範囲では、JNDI コンテキストが何であるかを述べずに「JNDI から取得する」と言う傾向があります。

詳しく説明すると、たとえば LDAP を使用する必要がありますか? または、Tomcatを使用する必要がありますか?Tomcat を使用している場合、グローバル JDNI オブジェクトではなく、ローカル JDNI オブジェクトのポイントは何ですか? つまり、確かにローカルのものは、JNDI オブジェクトを異なるものにしたい場合に構成設定を変更する必要があることを意味します。そもそもなぜ JNDI でデータソースを構成する必要があったのでしょうか? 直感的には、グローバルな tomcat JNDI コンテキストが最良の選択肢になると思いますが、私は少し大ざっぱです。

4

1 に答える 1

1

私の経験によると、同じアプリケーションを使用し、データベース情報に関するコードに何もハードコーディングしていませんが、変更を加えずにアプリケーションをデプロイするときに、別のデータベースに接続したいと考えています。

たとえば、DEV -> QA ->... -> Prod に移動すると、すべてが同じJNDI 名を持つ可能性が ありますが、異なる環境では異なる構成になります。同じ war/ear を変更せずに最後まで使用します。

tc で構成された JNDI 名 (ENV ごとに変更可能) -- さまざまな環境を移動するコード

JNDI は、構成に関して疎結合を提供します。

于 2012-04-19T13:39:56.523 に答える