我刚刚开始使用JNDI。我正在使用部署在tomcat上的Spring Mvc开发一个Web应用程序,连接到Mysql数据库。
根据我的理解,使用JNDI数据源的原因是在本地和实时服务器上运行应用程序时想要连接到不同的数据库,但不想为了执行此操作而必须更改任何配置;我从JNDI检索数据源,它在不同的机器上为我提供了不同的数据源。
我的问题是我不确定我应该为我的java对象使用什么JNDI上下文?我在网上找到的例子的范围倾向于说“从JNDI检索”而不说JNDI上下文是什么。
详细说明,我应该使用LDAP吗?或者我应该使用tomcat?如果我使用的是tomcat,那么本地JDNI对象与全局JDNI对象相比有什么意义呢?即,当我希望JNDI对象不同时,我必须更改配置设置,因此我为什么要首先在JNDI中配置我的数据源呢?直观地说,我认为全局tomcat JNDI上下文将是最好的选择,但我只是有点粗略。
答案 0 :(得分:1)
根据我的经验,您使用相同的应用程序而不是硬编码任何关于数据库信息的代码,并且仍然希望在部署应用程序时连接到不同的数据库而不进行任何更改。
例如,您转到DEV - > QA-> ... - > Prod all可能具有相同的 JNDI名称但是它们将在不同的环境中以不同方式配置。在没有任何变化的情况下使用相同的战争/耳朵。
在tc上配置的JNDI名称(每个ENV可更改) - 在不同环境中移动的代码
JNDI在配置方面为您提供松散耦合。