依赖

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<!--消息队列连接池-->
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.15.0</version>
</dependency>

配置文件(application.yml)

server:
port: 61616 spring:
activemq:
broker-url: tcp://localhost:61616
user: admin
password: admin
jms:
pub-sub-domain: false # false=queue true=topic #定义队列名称
myqueue: activemq-queue
mytopic: activemq-topic #true 表示使用内置的MQ,false则连接服务器
spring.activemq.in-memory=false #true表示使用连接池;false时,每发送一条数据创建一个连接
spring.activemq.pool.enabled=true #连接池最大连接数
spring.activemq.pool.max-connections=10 #空闲的连接过期时间,默认为30秒
spring.activemq.pool.idle-timeout=30000 #强制的连接过期时间,与idleTimeout的区别在于:
idleTimeout是在连接空闲一段时间失效,而expiryTimeout不管当前连接的情况,只要达到指定时间就失效。默认为0,never
spring.activemq.pool.expiry-timeout=0

定义Queue与Topic

@Configuration
@EnableJms
public class QueueBeanConfig { @Value("${myqueue}")
private String myqueue; //定义存放消息的队列
@Bean
public Queue queue() {
return new ActiveMQQueue(myqueue);
}
} @Configuration
@EnableJms
public class TopicBeanConfig { @Value("${mytopic}")
private String mytopic; //定义存放消息的队列
@Bean
public Topic topic() {
return new ActiveMQTopic(mytopci);
}
}

生产者

public class QueueProducer {

    //注入存放消息的队列,用于下列方法一
@Autowired
private Queue queue; //注入springboot封装的工具类
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate; public void send(String name) {
//方法一:添加消息到消息队列
jmsMessagingTemplate.convertAndSend(queue, name); //方法二:这种方式不需要手动创建queue,系统会自行创建名为test的队列
jmsMessagingTemplate.convertAndSend("test", name);
} //间隔时间3s定投,需要在主启动类添加注解:@EnableScheduling
@Scheduled(fixedDelay = 3000)
public void send1(String name) {
jmsMessagingTemplate.convertAndSend(queue, name);
}
} public class TopicProducer { //注入存放消息的队列,用于下列方法一
@Autowired
private Topic topic; //注入springboot封装的工具类
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate; public void send(String name) {
jmsMessagingTemplate.convertAndSend(topic, name);
} //间隔时间3s定投,需要在主启动类添加注解:@EnableScheduling
@Scheduled(fixedDelay = 3000)
public void send1(String name) {
jmsMessagingTemplate.convertAndSend(topic, name);
}
}

消费者

public class QueueConsumer {

    // 使用JmsListener配置消费者监听的队列
// @JmsListener如果不指定独立的containerFactory的话只能支持一直模式:或者是点对点,或者是消息订阅
@JmsListener(destination = "${myqueue}")
public void receive(TextMessage textMessage) throws JMSException {
System.out.println(textMessage.getText());
} // 双向列队:将return回的值,再发送的"out.queue"队列中(其中name是接收到的消息)
// SendTo 会将此方法返回的数据, 写入到 OutQueue 中去.
@JmsListener(destination = "${myqueue}")
@SendTo("outqueue")
public String handleMessage(String name) {
return "成功接受Name:" + name;
}
} public class TopicCustomer {
/**
* 创建2个消费者
*/
@JmsListener(destination = "mytopic")
public void subscriber(String text) {
System.out.println("消费者1:" + text);
} @JmsListener(destination = "mytopic")
public void subscriber1(String text) {
System.out.println("消费者2:" + text);
} }

Spring Boot 整合 ActiveMQ的更多相关文章

  1. spring boot整合activemq消息中间件

    spring boot整合activemq消息中间件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  2. activeMQ入门+spring boot整合activeMQ

    最近想要学习MOM(消息中间件:Message Oriented Middleware),就从比较基础的activeMQ学起,rabbitMQ.zeroMQ.rocketMQ.Kafka等后续再去学习 ...

  3. spring boot 整合activemq

    1 Spring Boot与ActiveMQ整合 1.1使用内嵌服务 (1)在pom.xml中引入ActiveMQ起步依赖 <properties> <spring.version& ...

  4. Spring Boot入门 and Spring Boot与ActiveMQ整合

    1.Spring Boot入门 1.1什么是Spring Boot Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品.无 ...

  5. Spring Boot与ActiveMQ整合

    Spring Boot与ActiveMQ整合 1使用内嵌服务 (1)在pom.xml中引入ActiveMQ起步依赖 <dependency> <groupId>org.spri ...

  6. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  7. Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询

    摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 预见未来最好的方式就是亲手创造未来 – <史蒂夫·乔布斯传> 』 运行环境: ...

  8. spring boot整合jsp的那些坑(spring boot 学习笔记之三)

    Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency>            <groupId>or ...

  9. spring boot 系列之四:spring boot 整合JPA

    上一篇我们讲了spring boot 整合JdbcTemplate来进行数据的持久化, 这篇我们来说下怎么通过spring boot 整合JPA来实现数据的持久化. 一.代码实现 修改pom,引入依赖 ...

随机推荐

  1. JVM内核-原理、诊断与优化学习笔记(十一):JVM字节码执行

    文章目录 javap javap 举个

  2. jQuery 基本选择器

    1 基本选择器 $(‘#id属性值’)  ----------->document.getElementById() $(‘tag标签名称’)----------->document.ge ...

  3. ICPC 2018 焦作区域赛

    // 2019.10.7 练习赛 // 赛题来源:2018 ICPC 焦作区域赛 // CF链接:http://codeforces.com/gym/102028 A Xu Xiake in Hena ...

  4. [kuangbin带你飞]专题一 简单搜索 - K - 迷宫问题

    #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #i ...

  5. 天道神诀---防火墙以及selinux(上篇)

    Linux防火墙 linux6.x 防火墙会影响通信,默认是拒绝所有. [root@redhat6 sysconfig]# chkconfig iptables --listiptables      ...

  6. ES6 学习 -- 解构赋值

    一.数组解构 **数组解构,解构出来的值跟数组下标是一一对应的,如果左边变量多于右边数组,则左边后面部分变量值为undefined,如果右边数组元素个数多于左边解构变量个数,则左边变量全都有值,且一一 ...

  7. PokerNet-poker recognition: 基于人工神经网络的扑克识别 (5)

    结果解读 结果1 结果2 结果1 void computeBCValue(cv::Mat mat_img, std::vector<bbox_t> result_vec, std::vec ...

  8. 用于扩展目标跟踪的笛卡尔B-Spline车辆模型

    (哥廷根大学) 摘要 文章提出了一种表示空间扩展物体轮廓的新方法,该方法适用于采用激光雷达跟踪未知尺寸和方向的车辆.我们在笛卡尔坐标系中使用二次均匀周期的B-Splines直接表示目标的星 - 凸形状 ...

  9. PHP算法之无重复字符的最长子串

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc&quo ...

  10. Java带头节点单链表的增删合并以及是否有环

    带头节点单链表 1.优势: 1)当链表为空时,指针指向头结点,不会发生null指针异常 2)方便特殊操作(删除第一个有效节点或者插入一个节点在表头) 3)单链表加上头结点之后,无论单链表是否为空,头指 ...