JMS(Jboss Messaging)的一点使用心得(四)Spring扩展应用-可修改的JMS ConnectionFactory
来源:互联网 发布:三层网络结构优点 编辑:程序博客网 时间:2024/05/16 15:23
在有些应用中,我们不需要在程序启动的时候就启动JMS服务;而且,我们每次访问的JMS服务器有可能都不一样,这个时候就需要一个可动态配置JMS ConnectionFactory 。
我们可以通过代码来重新配置JMS服务器的IP和Security的用户名和密码
<!-- **JMS** -->
<!-- **JNDI Template** -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" lazy-init="true">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.provider.url">localhost:1099</prop>
</props>
</property>
</bean>
<!-- **JMS Connection** --> <bean id="jmsConnectionFactory" lazy-init="true" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="proxyInterfaces" value="javax.jms.ConnectionFactory" />
<property name="lookupOnStartup" value="false" />
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<!-- userCredentialsConnection. For JmsSecurity -->
<bean id="myConnectionFactory" lazy-init="true"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
</bean>
<!-- **JNDI Template** -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" lazy-init="true">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</prop>
<prop key="java.naming.factory.url.pkgs">org.jboss.naming:org.jnp.interfaces</prop>
<prop key="java.naming.provider.url">localhost:1099</prop>
</props>
</property>
</bean>
<!-- **JMS Connection** --> <bean id="jmsConnectionFactory" lazy-init="true" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="proxyInterfaces" value="javax.jms.ConnectionFactory" />
<property name="lookupOnStartup" value="false" />
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<!-- userCredentialsConnection. For JmsSecurity -->
<bean id="myConnectionFactory" lazy-init="true"
class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
<property name="targetConnectionFactory" ref="jmsConnectionFactory" />
</bean>
我们可以通过代码来重新配置JMS服务器的IP和Security的用户名和密码
if (StringUtils.isNotEmpty(hostName)) {
JndiTemplate jndiTemplate = (JndiTemplate) this.factory.getBean("jndiTemplate");
Properties props = jndiTemplate.getEnvironment();
props.setProperty("java.naming.provider.url", hostName + ":1099");
}
UserCredentialsConnectionFactoryAdapter jmsUserAdapter = (UserCredentialsConnectionFactoryAdapter)
this.factory.getBean("myConnectionFactory");
jmsUserAdapter.setUsername(jmsUserName);
jmsUserAdapter.setPassword(jmsPassword);
JndiTemplate jndiTemplate = (JndiTemplate) this.factory.getBean("jndiTemplate");
Properties props = jndiTemplate.getEnvironment();
props.setProperty("java.naming.provider.url", hostName + ":1099");
}
UserCredentialsConnectionFactoryAdapter jmsUserAdapter = (UserCredentialsConnectionFactoryAdapter)
this.factory.getBean("myConnectionFactory");
jmsUserAdapter.setUsername(jmsUserName);
jmsUserAdapter.setPassword(jmsPassword);
- JMS(Jboss Messaging)的一点使用心得(四)Spring扩展应用-可修改的JMS ConnectionFactory
- JMS(Jboss Messaging)的一点使用心得(五)Spring扩展应用-可自动重连的JmsMessageListenerContainer
- JMS(Jboss Messaging)的一点使用心得(三)Spring扩展应用-Security
- JMS(Jboss Messaging)的一点使用心得(六)Messaging扩展应用-Message Bridge
- JMS(Jboss Messaging)的一点使用心得(十一)Spring扩展应用-可自动重连的JmsMessageListenerContainer的另一种实现
- JMS(Jboss Messaging)的一点使用心得(十四)Spring扩展应用—用单线程接收Queue
- JMS(Jboss Messaging)的一点使用心得(十五)Spring扩展应用—延迟发送Message
- JMS(Jboss Messaging)的一点使用心得(八)JBoss invoke-动态修改Bridge
- JMS(Jboss Messaging)的一点使用心得(二)使用Spring
- JMS(Jboss Messaging)的一点使用心得(十六)复数JMS Server监听-JBoss Remoting里存在的问题
- JMS(Jboss Messaging)的一点使用心得(十)对IPv6的支持
- JMS(Jboss Messaging)的一点使用心得(十二)多线程的ClassLoader
- JMS(Jboss Messaging)的一点使用心得(一)环境配置
- JMS(Jboss Messaging)的一点使用心得(九)实例代码
- JMS(Jboss Messaging)的一点使用心得(十三)拔网线后的重连----JMS Connection原理浅析及应用
- JMS(Jboss Messaging)的一点使用心得(七)JBoss invoke-动态创建Queue或者Topic
- JMS(Jboss Messaging)
- JMS 的 connectionfactory 的初始化和lookup
- CTime 的精确取值范围
- 罗永浩:关于苹果的产品、传闻和一些优点
- Struts-Menu-2.4.3用MyEclipse 6.0的Struts1.2的问题
- 开发人员一定要加入收藏夹的网站
- 我常用的软件网址
- JMS(Jboss Messaging)的一点使用心得(四)Spring扩展应用-可修改的JMS ConnectionFactory
- Visual Studio
- 动态配置工厂类
- 第五次作业(再次代码)
- /proc 文件系统中的文件及内容介绍
- 查看oracle数据库是否归档和修改归档模式
- C++基本功和 Design Pattern系列(1) - Inheritance VS Delegation
- 在Visual C++ 6.0下安装opencv
- C++基本功和 Design Pattern系列(2) Type Cast, Interface Inheritance VS Implementation Inheritance