Apache ActiveMQ 是一款基于 Java 的消息服务器,它使用行业标准协议,支持我们把各种语言和平台开发的系统连接在一起。目前 ActiveMQ 分为两个版本:ActiveMQ 5 和 ActiveMQ Artemis (下一代ActiveMQ)。当 ActiveMQ Artemis 达到 ActiveMQ 功能时会变为 ActiveMQ 6 。
Spring JMS 是专门用来处理 Spring 消息的模块。它支持主流的消息中间键,能完美结合 ActiveMQ 。Spring Boot 应用通过集成 Spring JMS 模块整合 ActiveMQ ,本文涉及 ActiveMQ 5 和 ActiveMQ Artemis 两种配置方法,根据项目实际使用 ActiveMQ 的版本,采取一种配置即可。
引入依赖
- 引入activemq
1 | xml复制代码<dependency> |
- 引入activemq artemis (与 activemq 二选一)
1 | xml复制代码<dependency> |
配置
在 application.yml 中增加:
- 配置 activemq
1 | yaml复制代码spring: |
- 配置 activemq artemis
1 | yaml复制代码spring: |
Spring JMS 中默使用 CachingConnectionFactory 创建连接池,如果指定 JmsPoolConnectionFactory 连接池,则在 spring.jms.* 中配置连接池属性。
1 | yaml复制代码spring: |
关于 Activemq (Artemis) 和 Apring Jms 更多配置,可参考:Spring Boot Integration Properties
使用
JmsTemplate 是 Spring JMS 中用来发送消息的类。做完以上配置,在 Spring Boot 启动入口加上 @EnableJms
注解,项目在启动时会自动装配,在项目中直接注入 JmsTemplate 对象。
1 | java复制代码@SpringBootApplication |
发送文本消息示例:
1 | java复制代码public void send(String msg) { |
接收使用 @JmsListener
注解:
1 | java复制代码/** |
发送消息和接收消息的 DEST_NAME 要保持一至。 concurrency 属性非必须,用来设置消费消息的程序数。关于 ActiveMQ 的详细介绍会在专门的章节讲解。
除非注明,否则均为”攻城狮·正“原创文章,转载请注明出处。
本文链接:engr-z.com/137.html
本文转载自: 掘金