ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot整合ActiveMQ

2021-04-19 23:03:14  阅读:255  来源: 互联网

标签:queue SpringBoot void public Queue Produce 整合 ActiveMQ class


整合队列

生产者

  1. 新建工程
  2. pox.xml文件配置
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
            <version>2.1.5.RELEASE</version>
        </dependency>
  1. application.yml
server:
  port: 7777

spring:
  activemq:
    broker-url: tcp://192.168.10.100:61616  #自己的mq服务器地址
    user: admin
    password: admin
  jms:
    pub-sub-domain: false   #false表示队列   true表示主题

#自己定义队列名称
myqueue: boot-activemq-queue

  1. 配置Bean
@Component
@EnableJms
public class ConfigBean {
    @Value("${myqueue}")
    private String myQueue;

    @Bean
    public Queue queue(){
        return new ActiveMQQueue(myQueue);
    }
}
  1. Queue_Produce
@Component
public class Queue_Produce {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @Autowired
    private Queue queue;

    public void produceMsg(){
        jmsMessagingTemplate.convertAndSend(queue,"******"+ UUID.randomUUID().toString().substring(0,6));
    }
}
  1. 启动类
@SpringBootApplication
public class MainApp_Produce {
    public static void main(String[] args) {
        SpringApplication.run(MainApp_Produce.class,args);
    }
}
  1. 测试单元
@SpringBootTest(classes = MainApp_Produce.class)
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class TestActiveMQ {
    @Autowired
    private Queue_Produce queue_produce;

    @Test
    public void testSend() throws Exception{
        queue_produce.produceMsg();
    }
}
  1. 每三秒推送消息

修改Queue_Produce新增定时投递方法

//间隔时间定投
    @Scheduled(fixedDelay = 3000)
    public void produceMsgScheduled(){
        jmsMessagingTemplate.convertAndSend(queue,"******Scheduled"+ UUID.randomUUID().toString().substring(0,6));
        System.out.println("send ok");
    }

修改主启动类

@SpringBootApplication
@EnableScheduling
public class MainApp_Produce {
    public static void main(String[] args) {
        SpringApplication.run(MainApp_Produce.class,args);
    }
}

直接开始主启动类

在这里插入图片描述
在这里插入图片描述
消费者

和生产者配置类似

Queue_Consumer

@Component
public class Queue_Consumer {

    @JmsListener(destination = "${myqueue}")
   public void receive(TextMessage textMessage) throws JMSException {
       System.out.println("*******消费者收到消息"+textMessage.getText());
   }

}

直接启动主启动类
在这里插入图片描述
在这里插入图片描述

标签:queue,SpringBoot,void,public,Queue,Produce,整合,ActiveMQ,class
来源: https://blog.csdn.net/qq_56224861/article/details/115874994

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有