Activemq整合spring

第一步:引用相关的jar包

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context-support</artifactId>
</dependency>

第二步:配置Activemq整合spring。配置ConnectionFactory

 
<!--JMS服务厂商提供的ConnectionFactory-->
<bean id="targetConnectionFactory"class="org.apache.activemq.ActiveMQConnectionFactory">
       <constructor-arg name="brokerURL"value="tcp://192.168.25.168:61616"/>
</bean>
<!--spring对象ConnectionFactory的封装-->
<bean id="connectionFactory"class="org.springframework.jms.connection.SingleConnectionFactory">
       <property name="targetConnectionFactory"ref="targetConnectionFactory"></property>
</bean>
<!--配置JMSTemplate-->
<bean id="jmsTemplate"class="org.springframework.jms.core.JmsTemplate">
       <property name="connectionFactory"ref="connectionFactory"/>
</bean>
<!--配置消息的Destination对象  点到点 queue-->
<bean id="test-queue"class="org.apache.activemq.command.ActiveMQQueue">
       <constructor-arg name="name"value="test-queue"></constructor-arg>
</bean>

<bean id="itemAddtopic"class="org.apache.activemq.command.ActiveMQTopic">
       <constructor-arg name="name"value="item-add-topic"></constructor-arg>
</bean> 

第三步 : 使用jmsTemplate来发送消息

@Test
public void testJmsTemplate() throws Exception {
        //初始化spring容器
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-activemq.xml");
        //从容器中获得JmsTemplate对象
        JmsTemplate jmsTemplate = applicationContext.getBean(JmsTemplate.class);
        //从容器中获得Destination对象
        Destination destination = (Destination) applicationContext.getBean("test-queue");
        //发送消息
        jmsTemplate.send(destination, new MessageCreator() {

                @Override
                public Message createMessage(Session session) throws JMSException {
                        TextMessage message = session.createTextMessage("spring activemq send queue message");
                        return message;
                        }
        });
 }

第四步 :接收消息

接收消息

import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;
import javax.xml.soap.Text;

/**
 * 接收Activemq发送的消息
 * <p>Title: MyMessageListener</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
public class MyMessageListener implements MessageListener {

    @Override
    public void onMessage(Message message) {
        try {
            //接收到消息
            TextMessage textMessage = (TextMessage) message;
            String text = textMessage.getText();
            System.out.println(text);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

<!-- JMS服务厂商提供的ConnectionFactory -->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
       <constructor-arg name="brokerURL" value="tcp://192.168.25.168:61616"/>
</bean>
<!-- spring对象ConnectionFactory的封装 -->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
       <property name="targetConnectionFactory" ref="targetConnectionFactory"></property>
</bean>
<!-- 配置消息的Destination对象 -->
<bean id="test-queue" class="org.apache.activemq.command.ActiveMQQueue">
       <constructor-arg name="name" value="test-queue"></constructor-arg>
</bean>
<bean id="itemAddTopic" class="org.apache.activemq.command.ActiveMQTopic">
       <constructor-arg name="name" value="item-add-topic"></constructor-arg>
</bean>
<!-- 配置消息的接收者 -->
<bean id="myMessageListener" class="com.taotao.search.listener.MyMessageListener"/>
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
       <property name="connectionFactory" ref="connectionFactory" />
       <property name="destination" ref="test-queue" />
       <property name="messageListener" ref="myMessageListener" />
</bean>
<bean id="itemAddMessageListener" class="com.taotao.search.listener.ItemAddMessageListener"/>
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
       <property name="connectionFactory" ref="connectionFactory" />
       <property name="destination" ref="itemAddTopic" />
       <property name="messageListener" ref="itemAddMessageListener" />
</bean>

测试类

@Test
public void testSpringActiveMq() throws Exception {
        //初始化spring容器
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-activemq.xml");
        //等待
        System.in.read();
 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值