Tomcat 对于web应用程序数据源,我应该使用什么JNDI InitialContext实现?

Tomcat 对于web应用程序数据源,我应该使用什么JNDI InitialContext实现?,tomcat,datasource,jndi,Tomcat,Datasource,Jndi,我只是第一次开始使用JNDI。我正在使用部署在tomcat上的SpringMVC开发一个web应用程序,连接到一个Mysql数据库 根据我的理解,使用JNDI数据源的理由是希望在本地和实时服务器上运行应用程序时连接到不同的数据库,但不希望为了实现这一点而必须更改任何配置;我从JNDI检索数据源,它在不同的机器上为我提供了不同的数据源 我的问题是我不确定我应该为我的java对象使用什么JNDI上下文?我在网上找到的示例的范围倾向于说“从JNDI检索”,而没有说JNDI上下文是什么 更详细地说,我应

我只是第一次开始使用JNDI。我正在使用部署在tomcat上的SpringMVC开发一个web应用程序,连接到一个Mysql数据库

根据我的理解,使用JNDI数据源的理由是希望在本地和实时服务器上运行应用程序时连接到不同的数据库,但不希望为了实现这一点而必须更改任何配置;我从JNDI检索数据源,它在不同的机器上为我提供了不同的数据源

我的问题是我不确定我应该为我的java对象使用什么JNDI上下文?我在网上找到的示例的范围倾向于说“从JNDI检索”,而没有说JNDI上下文是什么


更详细地说,我应该使用LDAP作为例子吗?还是我应该使用tomcat?如果我使用的是tomcat,那么本地JDNI对象相对于全局JDNI对象有什么意义?当然,当我想让JNDI对象不同时,本地设置意味着我必须更改配置设置。因此,为什么我首先要在JNDI中配置我的数据源?直觉上,我认为全局tomcat JNDI上下文是最好的选择,但我只是有点粗略。

根据我的经验,您使用相同的应用程序,并且没有在代码中硬编码任何关于数据库信息的内容,并且在部署应用程序时仍然希望连接到不同的数据库,而不进行任何更改

例如,您移动到DEV->QA->…->Prod all可能具有相同的JNDI名称,但是它们在不同的环境中的配置不同。使用相同的war/ear,不做任何更改

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

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