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

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

Topic生产者

新建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-starter-test
org.springframework.boot
spring-boot-maven-plugin

springboot配置:

application.yml

server:  port: 6666spring:  activemq:    broker-url: tcp://localhost:61616 #自己的MQ服务器地址    user: admin    password: admin  jms:    pub-sub-domain: true    # false: Queue  true:Topic#自己定义主题名称mytopic: boot-activemq-topic

配置Bean:

package pers.zhang.config;import org.apache.activemq.command.ActiveMQTopic;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.stereotype.Component;import javax.jms.Topic;@Componentpublic class TopicConfigBean {
@Value("${mytopic}") private String topicName; @Bean public Topic topic(){
return new ActiveMQTopic(topicName); }}

生产者:

@Componentpublic class Topic_Produce {
@Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Topic topic; @Scheduled(fixedDelay = 2000) public void produceTopic(){
jmsMessagingTemplate.convertAndSend(topic, "主题消息:" + UUID.randomUUID().toString().substring(0, 6)); System.out.println("2秒一次..."); }}

主启动类:

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

消费者

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

springboot配置,application.yml:

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

消费者:

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 = "${mytopic}") 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); }}

测试

先启动消费者:

在这里插入图片描述

再启动生产者,每2秒发送一条消息:

消费者控制台打印:

消费者收到主题的消息:主题消息:dfccdd消费者收到主题的消息:主题消息:70b401消费者收到主题的消息:主题消息:ce22bd消费者收到主题的消息:主题消息:997932

在这里插入图片描述

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

你可能感兴趣的文章
gatsby_使用Gatsby,React和Netlify轻松搞定JAM
查看>>
如何在Digital Ocean上托管Node.js应用
查看>>
django模板静态文件_使用Django模板和静态文件
查看>>
angular2 cli_带有Angular 2和Angular CLI的MEAN App
查看>>
构建自定义JavaScript Scrollspy导航
查看>>
laravel5.2.15_Laravel 5.5的新功能
查看>>
laravel/dusk_Laravel Dusk简介
查看>>
php生成pdf并生成_了解PHP生成器
查看>>
apache kafka_Apache Kafka简介
查看>>
angular2 表单验证_Angular 2表单验证
查看>>
Vue Router入门
查看>>
wordpress做cms_超越WordPress for CMS
查看>>
css 实现计数器_CSS计数器入门
查看>>
laravel 中间件_了解Laravel中间件
查看>>
编写vue.js用什么软件_如何为Vue.js编写单元测试
查看>>
ajax请求node.js_Node.js测试:模拟HTTP请求
查看>>
获取Angular中的AngularJS功能
查看>>
react待办事项_使用React创建一个简单的待办应用
查看>>
phantomjs 使用_什么是PhantomJS?如何使用?
查看>>
react 多页应用路由_路由React应用程序:完整指南
查看>>