Spring ActiveMQ 整合(一): 一个简单的demo,测试消息的发送与接收

转自:https://blog.csdn.net/dly1580854879/article/details/68488003

最近项目中用到了消息中间件,拿到任务后,各种百度各种学习,现将学习的一个小成果记录一下。

 环境:

     windows环境下: Spring 3.2.8     、Tomcat 7    、JDK 1.6  、 ActiveMQ 5.9.0  

项目目录结构:

          

applicationContext.xml

  1. <!--创建连接工厂 -->
  2. <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
  3. <property name="brokerURL" value="tcp://localhost:61616"> </property>
  4. </bean>
  5. <!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic -->
  6. <bean id="destinationOne" class="org.apache.activemq.command.ActiveMQQueue">
  7. <constructor-arg index="0" value="testQueOne"> </constructor-arg>
  8. </bean>
  9. <!-- 设置 消息目的地 start -->
  10. <bean id="jmsTemplateOne" class="org.springframework.jms.core.JmsTemplate">
  11. <property name="connectionFactory" ref="connectionFactory"> </property>
  12. <property name="defaultDestination" ref="destinationOne"> </property>
  13. <property name="receiveTimeout" value="6000"> </property>
  14. </bean>
  15. <!-- 设置 消息目的地 end -->
  16. <!-- 配置生产者 start -->
  17. <bean id="senderOne" class="com.dly.avtivemqtest.SenderOne">
  18. <property name="jmsTemplateOne" ref="jmsTemplateOne"> </property>
  19. </bean>
  20. <!-- 配置生产者 end -->
  21. <!-- 配置消费者 start -->
  22. <bean id="receiverOne" class="com.dly.avtivemqtest.ReceiverOne">
  23. <!-- <property name="jmsTemplate" ref="jmsTemplate"></property> -->
  24. </bean>
  25. <!-- 配置消费者 end -->
  26. <!-- 消息监听器 -->
  27. <bean id="consumerMessageListenerOfOne" class="com.dly.avtivemqtest.ReceiverOne" />
  28. <!-- 消息监听容器 消息接收监听器用于异步接收消息 -->
  29. <bean id="jmsContainerOne" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
  30. <property name="connectionFactory" ref="connectionFactory" />
  31. <property name="destination" ref="destinationOne" />
  32. <property name="messageListener" ref="consumerMessageListenerOfOne" />
  33. </bean>
  34. </beans>
SenderOne.java

  1. public class SenderOne {
  2. private JmsTemplate jmsTemplateOne;
  3. public JmsTemplate getJmsTemplateOne() {
  4. return jmsTemplateOne;
  5. }
  6. public void setJmsTemplateOne(JmsTemplate jmsTemplateOne) {
  7. this.jmsTemplateOne = jmsTemplateOne;
  8. }
  9. //测试的
  10. public void sendInfo(final String messageRecord,final String flag) {
  11. jmsTemplateOne.send(new MessageCreator() {
  12. public Message createMessage(Session session) throws JMSException {
  13. TextMessage message = session.createTextMessage();
  14. return message;
  15. }
  16. });
  17. }
  18. }

ReceiverOne.java

  1. public class ReceiverOne implements MessageListener {
  2. //测试方法
  3. public void onMessage(Message message, Session session) {
  4. //这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换
  5. TextMessage textMsg = (TextMessage) message;
  6. try {
  7. String endStr = textMsg.getText();
  8. Integer endInt = Integer.parseInt(endStr);
  9. System.out.println("消息:==="+endInt);
  10. } catch (Exception e) {
  11. e.printStackTrace();
  12. System.out.println("异常信息是:===:" + e.getMessage());
  13. }
  14. }
  15. }
JMSTest.java

  1. public class JMSTest {
  2. public static void main(String[] args) {
  3. ApplicationContext context = new ClassPathXmlApplicationContext("resources/applicationContext.xml");
  4. SenderOne sender = (SenderOne) context.getBean("senderOne");
  5. sender.sendInfo("10","2");
  6. }
  7. }

运行JMSTest的结果:

      

看到控制台答应出来的 2 ,就说明  这个消息是发送成功   并且能,成功接收的,说明我们的topic消息的发送与接收是成功的。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值