Spring Boot中整合JMS

Spring Boot中整合JMS

JMS即(Java Message Service)Java消息服务,,通过统一的Java API层面的标准,使得多个客户端可以可以通过JMS进行交互。JMS和ActiveMQ的关系就像JDBC和JDBC驱动的关系。JMS包括两种消息模型,点对点和发布/订阅,同时呢JMS仅仅支持Java平台。

01. ActiveMQ简介

Apache ActiveMQ是一个开源的消息中间件,它不仅支持JMS1.1规范,而且支持多种编程语言,例如,C、C++、c#、Delphi、Erlang、Adobe Flash 、Java、Python和Ruby等,同时也支持多种协议,例如OpenWire、REST、STOMP以及AMQP等。Apache ActiveMQ也提供了对Spring框架的支持,可以非常容易的嵌入Spring中,同时,也提供了集群支持。

02. ActiveMQ安装

这里的ActiveMQ的安装选择在linux上进行,这里以Centos7为例进行讲解如何安装,安装的版本这里我选择使用ActiveMQ5.14.4,安装步骤如下(注意,要运行ActiveMQ环境,Centos中必须已经安装了Java环境,这里如何在Centos中安装Java环境就不过多介绍了)
步骤1
下载
wget http://mirrors.hust.edu.cn/apache/activemq/5.14.4/apache-activemq-5.14.4-bin.tar.gz
步骤2 解压下载文件
tar -xzfv apache-activemq-5.14.4-bin.tar.gz
步骤3 启动ActiveMQ
cd cd apache-activemq-5.14.4/
cd bin
./activemq start
在这里插入图片描述
步骤4 访问
ActiveMQ启动后,关闭Centos防火墙,在物理机浏览器中输入http://192.168.43.172:8161,其中192.168.43.172为虚拟机地址,8161是ActiveMQ默认的端口号,效果如图所示:
在这里插入图片描述
ActiveMQ启动成功后,单机Manager ActiveMQ Broker超链接进入管理员控制台,默认的用户名和密码都是admin,效果如图,

在这里插入图片描述

03. L整合Spring Boot

Spring Boot为ActiveMQ配置提供了相关的"starter",所以整合非常容易。
首先创建Spring Boot项目,添加ActiveMQ依赖

org.springframework.boot
spring-boot-starter-activemq
然后再application.properties文件中进行连接配置

spring.activemq.broker-url=tcp://192.168.43.172:61616
spring.activemq.packages.trust-all=true
spring.activemq.user=admin
spring.activemq.password=admin  
 首先配置broke地址,默认端口是8161,然后配置所有信任的包,最后配置ActiveMQ的用户名和密码。
 接下来在项目配置类中提供一个消息队列Bean,该Bean的实例就是由ActiveMQ提供,代码如下:

@Bean
Queue queue() {
return new ActiveMQQueue(“amq”);
}

接下来创建一个JMS组件来完成消息的发送和接受
@Component
public class JmsComponent {
@Autowired
JmsMessagingTemplate messagingTemplate;
@Autowired
Queue queue;
public void send(Message msg){
messagingTemplate.convertAndSend(this.queue,msg);
}
@JmsListener(destination = “amq”)
public void receive(Message msg){
System.out.println(“receive:”+msg);
}

}

经过上面的配置,就可以在Spring Boot中使用ActiveMQ了

0 4. 测试

  • List item

编写测试类,完成消息发送测试,代码如下:
@RunWith(SpringRunner.class)
@SpringBootTest
class SpringBoot12ApplicationTests {
@Autowired
JmsComponent jmsComponent;
@Test
void contextLoads() {
Message msg=new Message();
msg.setContent(“hello jms!!!”);
msg.setDate(new Date());
jmsComponent.send(msg);
}

}
确认ActiveMQ已经启动,然后启动Spring Boot进行单元测试,效果如下:
在这里插入图片描述
至此,Spring Boot整合ActiveMQ相关的小例子讲完了,感谢您的浏览,欢迎评论留言,我会及时回复的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值