使用JNDI,一个J2EE应用程序可以存储和动态获取任何类型的命名Java对象。因为JNDI不依赖于任何特定的执行,应用程序可以使用JNDI访问各种命名目录服务,包括现有的诸如LDAP、NDS、DNS、NIS、COS命名和RMI注册等服务。这使得J2EE应用程序可以和传统的应用程序和系统共存。
从JNDI的架构中可以看出,JNDI分为三部分,应用程序编程接口(API)和服务供应商接口(SPI),前者Java应用程序访问各种命名和目录服务,开发上层应用的程序员就不必去关心底层具体的技术细节,后者则是设计来供任意一种服务的供应商(也包括目录服务供应商)使用,这一层一般由供应商去完成。
======================================================================================================
(http://blog.csdn.net/daryl715/article/details/1485642)
1. 使用JndiObjectFactoryBean,例如
< /bean>
2. 使用JndiObjectTargetSource,例如
< /bean>
3. 如果不使用JndiTemplate实现InitialContext环境变量的配置,则需要jndi.properties文件(放在classpath中,一般放在src下面),内容如下
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
4. 使用JndiTemplate实现InitialContext环境变量的配置,例如
< /bean>
< bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
===============================================
红色代码可以更改为
然后在applicationResources.properties 中根据环境来配置参数
jms.jndi.ProviderUrl_LOCAL=tcp://XXX.net:5013,ssl://XXX.net:5513 (顺序连接,前面连不上,连接后面???)
jms.jndi.ProviderUrl_DEV=tcp://XXX.net:7222
jms.jndi.ProviderUrl_UAT=tcp://XXX.net:7222
jms.jndi.ProviderUrl_PRO=tcp://XXX.net:7222
jms.jndi.ProviderUrl_CTG=tcp://XXX.net:7222
启动时参数--Denv=DEV 或者 UAT 等其他