博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ActiveMQ--SpringBoot整合ActiveMQ队列
阅读量:2442 次
发布时间:2019-05-10

本文共 4725 字,大约阅读时间需要 15 分钟。

整合生产者

创建Maven工程

pom.xml

4.0.0
org.example
sprinboot_activemq
1.0-SNAPSHOT
org.springframework.boot
spring-boot-starter-parent
2.1.5.RELEASE
UTF-8
1.8
1.8
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-activemq
2.1.5.RELEASE
org.springframework.boot
spring-boot-maven-plugin

配置SpringBoot

application.yml

server:  port: 7777spring:  activemq:    broker-url: tcp://localhost:61616 #自己的MQ服务器地址    user: admin    password: admin  jms:    pub-sub-domain: false    # false: Queue  true:Topic#自己定义队列名称myqueue: boot-activemq-queue

配置Bean

package pers.zhang.config;        import org.apache.activemq.command.ActiveMQQueue;        import org.springframework.beans.factory.annotation.Value;        import org.springframework.context.annotation.Bean;        import org.springframework.stereotype.Component;        import javax.jms.Queue;@Component@EnableJms//开启JMS适配注解public class ConfigBean {
@Value("${myqueue}") private String myqueue; @Bean public Queue queue(){
return new ActiveMQQueue(myqueue); }}

发送者

package pers.zhang.test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.stereotype.Component;import javax.jms.Queue;import java.util.UUID;@Componentpublic class Queue_Produce {
@Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; public void produceMsg(){
jmsMessagingTemplate.convertAndSend(queue, "*****" + UUID.randomUUID().toString().substring(0, 6)); }}

主启动类

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

编写测试类

package pers.zhang;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import org.springframework.test.context.web.WebAppConfiguration;import pers.zhang.test.Queue_Produce;import javax.annotation.Resource;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes = MainApp_Produce.class)@WebAppConfigurationpublic class TestActive {
@Resource private Queue_Produce queue_produce; @Test public void testSend() throws Exception{
queue_produce.produceMsg(); }}

运行测试方法:

在这里插入图片描述

每隔3秒向MQ推送消息:

增加Queue_Produce定时投递方法:

//间隔3定时投递    @Scheduled(fixedDelay = 3000)    public void produceMdgScheduled(){
jmsMessagingTemplate.convertAndSend(queue, "*****" + UUID.randomUUID().toString().substring(0, 6)); System.out.println("3秒一次..."); }

修改主启动类MainApp_Produce:

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

运行主启动类,控制台打印:

3秒一次...3秒一次...3秒一次...

在这里插入图片描述

整合消费者

创建Maven工程,pom.xml与生产者一致。

配置application.yml

server:  port: 8888spring:  activemq:    broker-url: tcp://localhost:61616 #自己的MQ服务器地址    user: admin    password: admin  jms:    pub-sub-domain: false    # false: Queue  true:Topic#自己定义队列名称myqueue: boot-activemq-queue

消费者

监听消息:

package pers.zhang.activemq;import org.springframework.jms.annotation.JmsListener;import org.springframework.stereotype.Component;import javax.jms.JMSException;import javax.jms.TextMessage;@Componentpublic class Queue_Consumer {    @JmsListener(destination = "${myqueue}")    public void receive(TextMessage textMessage)throws JMSException {        System.out.println("消费者收到消息:" + textMessage.getText());    }}

主启动类

@SpringBootApplicationpublic class MainApp_Consumer {
public static void main(String[] args) {
SpringApplication.run(MainApp_Consumer.class, args); }}

运行,控制台打印:

消费者收到消息:*****88d60d消费者收到消息:*****b9c57e消费者收到消息:*****5116ae消费者收到消息:*****b59d0b消费者收到消息:*****0806c6消费者收到消息:*****af7056消费者收到消息:*****9895bd

在这里插入图片描述

转载地址:http://ubpqb.baihongyu.com/

你可能感兴趣的文章
如何从Excel列表中的Word中创建邮件标签
查看>>
如何在Linux启动时轻松挂载分区
查看>>
outlook 加载配置项_如何禁用Outlook加载项进行故障排除
查看>>
如何导出或删除Outlook.com搜索历史记录
查看>>
dd-wrt固件_如何使用DD-WRT优先安排网络流量
查看>>
如何将您的计算机变成带有病态胡须的增压TiVo
查看>>
如何在Facebook Messenger中启用暗模式
查看>>
如何远程锁定或擦除iOS 5设备
查看>>
如何重命名您的AirPods
查看>>
powerpoint预览_如何添加,删除和重新排列PowerPoint幻灯片
查看>>
您的Mac正在High Sierra中跟踪您的位置,这就是原因(以及如何禁用它)
查看>>
在Windows 7下最大限度地发挥多显示器的魔力
查看>>
如何使Ubuntu中的Gnome面板完全透明
查看>>
电子修补程序入门:购物清单
查看>>
chrome插件 备份书签_如何在本地备份和还原您的Chrome书签
查看>>
在Firefox的“关于”页面上找到隐藏功能和复活节彩蛋
查看>>
word中将空格替换为_如何在Word 2010中将英寸更改为厘米
查看>>
如何在Google文档中创建连字符,连字符和Em连字符
查看>>
如何为Windows Home Server设置电子邮件通知
查看>>
spark fold_每日新闻摘要:三星Galaxy Fold将于9月发布
查看>>