spring jms
来源:互联网 发布:非洲大蜗牛 知乎 编辑:程序博客网 时间:2024/04/26 13:26
1. spring 配置
<bean id="jmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop"> <property name="connectionFactory"> <bean class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="failover:(tcp://localhost:61616)" /> <property name="useAsyncSend" value="true" /> <property name="redeliveryPolicy" ref="redeliveryPolicy" /> <property name="prefetchPolicy" ref="prefetchPolicy" /> </bean> </property> <property name="maxConnections" value="100" /> </bean> <!-- Spring JmsTemplate config --> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <!-- lets wrap in a pool to avoid creating a connection per send --> <property name="connectionFactory" ref="jmsConnectionFactory" /> <property name="sessionTransacted" value="true" /> <property name="defaultDestination" ref="bookGift"/> <property name="deliveryMode" value="2"/> </bean> <bean id="bookGift" class="org.apache.activemq.command.ActiveMQQueue"> <constructor-arg index="0" value="bookGift" /> </bean> <!-- 配置消息队列监听者(Queue),自己写的实现 onMessage方法 --> <bean id="queueMessageListener" class="cn.valenon.test.jms.JmsListener" /> <!-- 消息监听容器(Queue) --> <bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="jmsConnectionFactory" /> <property name="destination" ref="bookGift" /> <property name="messageListener" ref="queueMessageListener" /> </bean>
2. 发送消息的服务:接口和实现类
interface MessageProducerService { /** * 向指定队列发送消息 */ public void sendMessage(Destination destination, final String msg)/** * 向默认队列发送消息 */ public void sendMessageOnDefault(final BookMessage msg)}
class MessageProducerServiceImpl implements MessageProducerService { @Autowired private JmsTemplate jmsTemplate /** * 向指定队列发送消息 */ @Override public void sendMessage(Destination destination, String msg) { jmsTemplate.convertAndSend(destination,msg) }/** * 向默认队列发送消息 */ @Override public void sendMessageOnDefault(final BookMessage msg) { Destination destination = jmsTemplate.getDefaultDestination(); jmsTemplate.convertAndSend(destination,msg) }}
BookMessage是一个自定义的POJO,作为消息体,需要实现Serilizable接口
class BookMessage implements Serializable { String name; int age; public String toString(){ return this.name + ";" + this.age }}
3. 消息监听类:
class JmsListener implements MessageListener { @Override void onMessage(Message message) { try { ObjectMessage tm = (ObjectMessage) message; BookMessage bm = tm.getObject(); } catch (JMSException e) { e.printStackTrace(); } }}也可以直接发送String,这时,就需要将Message转换成TextMessage,而不是ObjectMessage。
0 0
- spring -jms
- Spring JMS
- Spring JMS
- spring jms
- spring+jms
- spring + jms
- jms spring
- spring jms
- Spring JMS
- JMS + Spring
- Spring JMS
- Spring JMS 消息处理
- jms+spring配置
- Spring整合JMS
- Spring+JMS例子
- jms with spring
- jms with spring 2
- Spring Jms入门实例
- 加速Android Studio/Gradle构建
- math.h中一些常用函数
- Android studio教程与问题汇总
- leetcode 54 : Spiral Matrix
- Android USB Host与HID通讯
- spring jms
- icvDefaultSplitIdx_R和icvDefaultSplitIdx_C
- 算法基础:排列组合问题-全排列(Golang实现)
- Win7下用IIS发布网站
- android程序点返回键无反应
- swift 创建tableView 并实现协议
- 【转载】linux 常用命令及技巧
- 内表之间的复制
- HashMap vs ConcurrentHashMap vs Collections.synchronizedMap(HashMap)