Java 将数据源和命名空间绑定从Tomcat server.xml移动到属性文件

Java 将数据源和命名空间绑定从Tomcat server.xml移动到属性文件,java,tomcat,jndi,Java,Tomcat,Jndi,我想移动特定于应用程序的数据库和命名空间绑定 从server.xml,context.xml到database.property的配置,以及 namespace.property文件 最初,我使用jndi查找从server.xml获取值 文件我可以使用classorg.apache.commons.dbcp2.BasicDataSource来 但我仍然希望使用JNDI查找 我怎样才能做到这一点。。请帮忙 最初,我的数据源设置是: applicationContexct.xml <jee:j

我想移动特定于应用程序的数据库和命名空间绑定 从
server.xml
context.xml
database.property
的配置,以及
namespace.property
文件

最初,我使用jndi查找从server.xml获取值 文件我可以使用class
org.apache.commons.dbcp2.BasicDataSource
来 但我仍然希望使用JNDI查找

我怎样才能做到这一点。。请帮忙

最初,我的数据源设置是:

applicationContexct.xml

<jee:jndi-lookup id="sampleDatasource" jndi-name="jdbc/test" cache="true" />
现在我想使用属性文件来存储driverName、用户ID和密码 因此,我创建了属性文件,并在applicationcontext中使用下面的条目

<bean id="sampleDatasource" 
     class="org.apache.commons.dbcp2.BasicDataSource"
     destroy-method="close"
     p:driverClassName="${jdbc.driverClassName}"
     p:url="${jdbc.url}"
     p:username="${jdbc.username}"
     p:password="${jdbc.password}"
     p:maxWaitMillis="${jdbc.maxWait}"
     p:maxIdle="${jdbc.maxIdle}"/>**
**
但我得出来找JNDI。。因为现在没用了

如何使用JNDI查找实现相同的功能

我希望我的应用程序应该使用

<jee:jndi-lookup id="sampleDatasource" jndi-name="jdbc/test"  cache="true" />


从属性文件获取属性。

创建jndi.properties文件并将其放入JAVA_HOME/lib文件夹。JNDI将自动发现并从中读取。

是否要使用JNDI<代码>但我必须完成JNDI查找。。因为现在没用了。。我如何使用JNDI查找来实现同样的目标,这没有任何意义。是的,我必须使用JNDI查找,我最初说我正在使用,但现在当将数据源详细信息移动到属性文件时,我的代码不再链接到JNDI查找以获取数据源详细信息。。但是我想要一种方法,我们可以使用jndi查找,并且应该从.property文件intead of server.xml文件中获取drivername、userid和密码详细信息……是否有任何方法可以使用jndi查找从属性文件中获取数据源详细信息jndi的唯一用途是将对象的创建留在服务器上。这意味着它必须在服务器级别上完成。为什么还要将配置属性放在源代码中?JNDI在您有多个环境(如Dev/QA/Production)的情况下非常有用,因为服务器管理的对象我们不需要更改源,因此可以为不同的环境部署工件。
<jee:jndi-lookup id="sampleDatasource" jndi-name="jdbc/test"  cache="true" />