我有很多 Websphere 服务器,它们的数据库连接具有不同的 JNDI 名称,因此我必须为每个服务器构建许多 Ear 文件。我想做这样的事情:
<bean id="dbDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="${SPECIFIC_JNDI_NAME}"/>
</bean>
如何创建此 SPECIFIC_JNDI_NAME 变量?
最佳答案
正确的 Java EE 方法是在代码中使用资源引用,例如:java:comp/env/jdbc/myDSRef
,然后将此资源引用绑定(bind)到实际的 JNDI 名称安装过程。
您可以通过@Resource
标签定义引用,或者在部署描述符中定义引用(web.xml
或ejb-jar.xml
) .
您可以通过管理控制台、wsadmin
安装脚本或放置在 WEB-INF 文件夹中的 ibm-web-bnd.xml
文件将其映射到 JNDI 名称。
可以使用 Spring 的引用。
关于java - 动态传递 JNDI 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31025654/