spring发送异步消息

一、使用JMS发送消息

JMS是一个Java标准,定义了使用消息代理(message broker)的通用API。Spring通过基于模板的抽象为JMS的功能提供了支持,这个模板就是JmsTemplate。借助JmsTemplate,我们可以非常容易地在消息生产方发送队列和主题消息,在消费者那一方,也能够非常容易的接收消息。Spring还提供了消息驱动POJO的理念:这是一个简单的Java对象,能够以异步的方式响应队列或主题上到达的消息。

1、搭建JMS环境

首先在项目中添加依赖:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-artemis</artifactId>
</dependency>

接下来在yml配置文件里添加:

1
2
3
4
5
6
7
8
9
10
spring:
artemis:
#代理的主机
host: 47.107.73.216
#代理的端口
port: 61617
#用来访问代理的用户(可选)
user: tacoweb
#用来访问代理的密码(可选)
password: 123456

这会让Spring创建到 Artemis的代理连接,让 Attemis代理监听 47.107.73.216的端口61617,他还为应用代理设置了代理交互的凭证(可选)。

2、使用JmsTemplate发送消息

JMS start依赖添加到构建文件之后,Spring Boot会自动配置一个JmsTemplate,我们可以将它注入到其他bean中,使用它来发送和接收消息。