ActiveMQ与Spring整合
配置文件中引入ActiveMQ.xml
【ActiveMQ与Spring整合】
Queue生产者
/**
* @description 队列消息生产者,发送消息到队列
*/
@Component("queueSender")
public class QueueSender {@Autowired
@Qualifier("jmsQueueTemplate")
private JmsTemplate jmsQueueTemplate;
//通过@Qualifier修饰符来注入对应的bean/**
* 发送一条消息到指定的队列(目标)
*
* @param queueName 队列名称
* @param message消息内容
*/
public void send(String queueName, final String message) {
jmsQueueTemplate.convertAndSend(queueName, message);
}}
Topic生产者
@Component("topicSender")
public class TopicSender {@Autowired
@Qualifier("jmsTopicTemplate")
private JmsTemplate jmsTemplate;
/**
* 发送一条消息到指定的队列(目标)
*
* @param topicName 队列名称
* @param message消息内容
*/
public void send(String topicName, final String message) {
jmsTemplate.convertAndSend(topicName, message);
}
}
接口测试
@Controller
@RequestMapping("/activemq")
public class ActivemqController {@Resource
private QueueSender queueSender;
@Resource
private TopicSender topicSender;
/**
* todo 开启activeMQ服务
* 发送消息到队列
* Queue队列:仅有一个订阅者会收到消息,消息一旦被处理就不会存在队列中
* @param message
* @return String
*/
@ResponseBody
@PostMapping("/queueSender")
public String queueSender(@RequestParam("message") String message) {
String opt = "";
try {
queueSender.send("test.queue", message);
opt = "success";
} catch (Exception e) {
opt = e.getCause().toString();
}
return opt;
}/**
* 发送消息到主题
* Topic主题 :放入一个消息,所有订阅者都会收到
* 这个是主题目的地是一对多的
*
* @param message
* @return String
*/
@ResponseBody
@PostMapping("/topicSender")
public String topicSender(@RequestParam("message") String message) {
String opt = "";
try {
topicSender.send("test.topic", message);
opt = "success";
} catch (Exception e) {
opt = e.getCause().toString();
}
return opt;
}
}
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- Activiti(一)SpringBoot2集成Activiti6
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题