ActiveMQ整合Spring——接收消息

布满荆棘的人生 2022-05-27 09:56 311阅读 0赞

需要的jar包,同上篇文章:

新建spring-activemq.xml,配置如下(配置与发送消息稍有不同):

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://code.alibabatech.com/schema/dubbo
  8. http://code.alibabatech.com/schema/dubbo/dubbo.xsd
  9. http://www.springframework.org/schema/context
  10. http://www.springframework.org/schema/context/spring-context.xsd">
  11. <!-- 真正可以产生Connection的ConnectionFactory,由对应的 JMS服务厂商提供 -->
  12. <bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  13. <property name="brokerURL" value="tcp://192.168.25.134:61616" />
  14. </bean>
  15. <!-- Spring用于管理真正的ConnectionFactory的ConnectionFactory -->
  16. <bean id="connectionFactory"
  17. class="org.springframework.jms.connection.SingleConnectionFactory">
  18. <!-- 目标ConnectionFactory对应真实的可以产生JMS Connection的ConnectionFactory -->
  19. <property name="targetConnectionFactory" ref="targetConnectionFactory" />
  20. </bean>
  21. <!--这个是队列目的地,点对点的 -->
  22. <bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
  23. <constructor-arg>
  24. <value>spring-queue</value>
  25. </constructor-arg>
  26. </bean>
  27. <!--这个是主题目的地,一对多的 -->
  28. <bean id="topicDestination" class="org.apache.activemq.command.ActiveMQTopic">
  29. <constructor-arg value="topic" />
  30. </bean>
  31. <!-- 接收消息 -->
  32. <!-- 配置监听器,我们新建的监听器的配置 -->
  33. <bean id="myMessageListener" class="cn.search.service.MyMessageListener" />
  34. <!-- 消息监听容器 -->
  35. <bean
  36. class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  37. <property name="connectionFactory" ref="connectionFactory" />
  38. <property name="destination" ref="topicDestination" />
  39. <property name="messageListener" ref="myMessageListener" />
  40. </bean>
  41. </beans>

新建一个类,实现MessageListsener接口:

  1. package cn.search.service;
  2. import java.io.IOException;
  3. import javax.jms.JMSException;
  4. import javax.jms.Message;
  5. import javax.jms.MessageListener;
  6. import javax.jms.TextMessage;
  7. import org.apache.solr.client.solrj.SolrServerException;
  8. import org.apache.solr.client.solrj.impl.CloudSolrServer;
  9. import org.apache.solr.common.SolrDocument;
  10. import org.apache.solr.common.SolrInputDocument;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import com.e3mall.search.SearchItem;
  13. import cn.search.mapper.ISearchMapper;
  14. public class MyMessageListener implements MessageListener {
  15. @Override
  16. public void onMessage(Message message) {
  17. try {
  18. // 取消息
  19. TextMessage textMessage = (TextMessage) message;
  20. String text = textMessage.getText();
  21. System.out.println(text);
  22. } catch (Exception e) {
  23. // TODO: handle exception
  24. }
  25. }
  26. }

发表评论

表情:
评论列表 (有 0 条评论,311人围观)

还没有评论,来说两句吧...

相关阅读