【发布时间】:2017-06-23 13:01:28
【问题描述】:
我想移动我的应用程序特定的数据库和命名空间绑定
从server.xml、context.xml 到database.property 和
namespace.property 文件。
最初我使用 jndi-lookup 从 server.xml 获取值
文件..我可以使用org.apache.commons.dbcp2.BasicDataSource类
这个,但我仍然想使用 JNDI-lookup。
我怎样才能做到这一点..请帮忙。
最初我的数据源设置是:
applicationContext.xml
<jee:jndi-lookup id="sampleDatasource" jndi-name="jdbc/test" cache="true" />
在context.xml:
<Resource auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxActive="100" maxIdle="30" maxWait="10000"
name="jdbc/test"
password="test" type="javax.sql.DataSource"
url="test......" username="test"/>
现在我想使用属性文件来存储驱动程序名称、用户 ID、密码 等等,因此我创建了属性文件,并在应用程序上下文中使用下面的条目
<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-lookup 注释掉..因为它现在没用了..
如何使用 JNDI-lookup 实现相同的目标
我希望我的应用程序应该使用
<jee:jndi-lookup id="sampleDatasource" jndi-name="jdbc/test" cache="true" />
从属性文件中获取属性。
【问题讨论】:
-
你要不要使用JNDI?
But I have to coment out JNDI-lookup.. because it is no use now.. How can I achive the same thing using JNDI-lookup,没有任何意义。 -
是的,我必须使用 JNDI 查找,我最初说过我正在使用,但现在当将数据源详细信息移动到属性文件时,我的代码不再链接到 jndi 查找以获取数据源详细信息。但是我想要一种可以使用 jndi-lookup 的方法,并且应该从 .property 文件而不是 server.xml 文件中获取驱动程序名称、用户 ID、密码详细信息...
-
有没有办法使用 jndi-lookup 从属性文件中获取数据源详细信息
-
JNDI 的唯一用途是将对象的创建留在服务器上。这意味着它必须在服务器级别完成。为什么还要将配置属性放在源代码中? JNDI 在您有多个环境(例如 Dev/QA/Production)的情况下很有用,因为服务器管理我们不需要更改源的对象,因此可以为不同的环境部署工件。