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 名称, 但是它们将在不同的环境中进行不同的配置。使用相同的战争/耳朵,无需任何更改。

在 tc 上配置的 JNDI 名称(可根据 ENV 更改)——代码在不同环境中移动

JNDI 在配置方面为您提供松耦合。

于 2012-04-19T13:39:56.523 回答