spring jms

原创 2015年07月10日 10:43:33

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。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

spring jms 3.2

  • 2017-05-18 22:18
  • 196KB
  • 下载

spring-jms

  • 2014-07-13 01:19
  • 200KB
  • 下载

Spring整合JMS(一)——基于ActiveMQ实现

1.1 JMS简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应...

spring-jms入门

  • 2016-07-21 22:18
  • 8.23MB
  • 下载

Spring发送接收JMS消息

  • 2013-08-28 09:30
  • 7.35MB
  • 下载

Blazeds+JMS(ActiveMQ)+Spring实现消息[转]

最近正在开发Flex应用程序,使用了BlaseDs,这篇文章着重介绍了如何启用BlaseDs的Message服务。原文:http://yunzhongxia.javaeye.com/blog/5652...

spring+jms+activemq

  • 2013-06-25 10:41
  • 70KB
  • 下载

JMS 集成Spring 实现ActiveMQ

JMS 集成Spring 实现ActiveMQ     简介:当使用Spring管理JMS开发时,我们会给出两种案例,其中一种是先接受消息在运行发送(案例1),另外一种反之(案例2)。。。   ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)