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; } }

    推荐阅读