前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ActiveMQ学习之SpringBoot整合ActiveMQ------>主题生产者和消费者

ActiveMQ学习之SpringBoot整合ActiveMQ------>主题生产者和消费者

作者头像
用户5899361
发布2020-12-07 15:14:29
3190
发布2020-12-07 15:14:29
举报
文章被收录于专栏:学习java的小白学习java的小白

一、pom

代码语言:javascript
复制
 <!--聚合工程集成关系-->
  <!--统一整合第三方框架依赖信息-->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
  </parent>

  <dependencies>
    <!-- -springboot 整合Web组件 整合SpringMVC 就会把传统方式的SpringMVC依赖的jar全部给下载来 -->
    <!-- 引入spring-boot-starter-web 帮你整合好所有相关的依赖jar包 原理 maven依赖传递 -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--springboot整合activeMQ-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-activemq</artifactId>
    </dependency>
  </dependencies>

二、配置文件(application.yml)

代码语言:javascript
复制
spring:
  activemq:
    broker-url: tcp://192.168.44.135:61616
    user: admin
    password: admin
  jms:
    #此处如果为false表示为队列(queue)true表示为主题(topic)
    pub-sub-domain: true
#主题名称
mytopic: boot-topic

三、配置类

代码语言:javascript
复制
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

import javax.jms.Queue;
import javax.jms.Topic;

/**
 * @ProjectName: springbootActiveMQDemo
 * @Package: cn.**.config
 * @Author: huat
 * @Date: 2020/1/22 15:25
 * @Version: 1.0
 */
@Configuration
public class ActiveMQConfig {
    //通过配置文件获取主题名称
    @Value("${mytopic}")
    private String topicName;

    @Bean
    public Topic topic(){
        return new ActiveMQTopic(topicName);
    }

}

四、生产者

代码语言:javascript
复制
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;


import javax.jms.Topic;

/**
 * @ProjectName: springbootActiveMQDemo
 * @Package: cn.**.topic
 * @Author: huat
 * @Date: 2020/1/22 15:29
 * @Version: 1.0
 */
@Component
public class TopicProduce {
    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;
    @Autowired
    private Topic topic;

    public void produce(){
        //发送消息
        jmsMessagingTemplate.convertAndSend(topic,"topic****bootDemo");
    }

    @Scheduled(fixedDelay = 3000)//定时任务  3秒
    public void produceScheduled(){
        //发送消息
        jmsMessagingTemplate.convertAndSend(topic,"topic--->Scheduled****bootDemo");

    }
}

五、消费者

代码语言:javascript
复制
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

import javax.jms.JMSException;
import javax.jms.TextMessage;

/**
 * @ProjectName: springbootActiveMQDemo
 * @Package: cn.**.topic
 * @Author: huat
 * @Date: 2020/1/22 16:35
 * @Version: 1.0
 */
@Component
public class TopicConsumer {
    @JmsListener(destination = "${mytopic}")//监听注解,里面的值为队列名称
    public void receive(TextMessage textMessage) throws JMSException {
        System.out.println("接受的消息是"+textMessage.getText());
    }
}

六、启动类

代码语言:javascript
复制
import javafx.application.Application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * @ProjectName: springbootActiveMQDemo
 * @Package: cn.**
 * @Author: huat
 * @Date: 2020/1/22 14:46
 * @Version: 1.0
 */
@SpringBootApplication
@EnableJms//开启jms的注解以及适配
@EnableScheduling//开启定时任务
public class SpringbootAppStart {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootAppStart.class,args);
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、pom
  • 二、配置文件(application.yml)
  • 三、配置类
  • 四、生产者
  • 五、消费者
  • 六、启动类
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档