首页 > 编程语言 > 详细

简单记录下springboot+jms+activemq

时间:2019-10-12 19:35:00      阅读:75      评论:0      收藏:0      [点我收藏+]

1. 安装ActiveMQ

到Apache官方网站下载最新的ActiveMQ的安装包,并解压到本地目录下后运行

2. pom.xml引入  springboot配置文件中填写相关配置

技术分享图片

 

技术分享图片

 

 

 3.创建生产者

@Component

public class JmsProducer {

private static final Logger LOG = LoggerFactory.getLogger(JmsProducer.class);

@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;

/**
* 一对一发送
*
* @param queueName
* @param message
*/
public void send(String queueName, String message) {
jmsMessagingTemplate.convertAndSend(queueName, message);
}

/**
* 一对多发送
*
* @param topicName
* @param message
*/
public void multicast(String topicName, String message) {
LOG.debug("发送广播消息到{},内容是:\n{}", topicName, message);
Destination destination = new ActiveMQTopic(topicName);
jmsMessagingTemplate.convertAndSend(destination, message);
}
}


4.创建消费者
@Component
@Profile({"test", "prod"})
@Slf4j
public class PushConsumer {

@Autowired
PushServiceImpl pushService;

/**
* 聊天消息推送
* @param message 消息体
*/
@JmsListener(destination = MqConfig.PUSH_NAME, containerFactory = "jmsListenerContainerTopic")
public void push(String message){
log.debug("从消息队列{}中收到消息:{}",MqConfig.PUSH_NAME,message);
try {
MessageModel messageModel = JSONArray.parseObject(message,MessageModel.class);
pushService.push(messageModel.getEnumDeviceType(),
messageModel.getTitle(),
messageModel.getMessage(),
messageModel.getAliasList(),
messageModel.getParm());
}catch (Exception e){
log.error("推送失败");
throw new BusinessException("推送失败",e);
}
}
}

5.mqConfig
@Configuration
public class MqConfig {

public final static String PUSH_NAME = "topic.push.name";
//需要给topic定义独立的JmsListenerContainer

@Bean
public JmsListenerContainerFactory<?> jmsListenerContainerTopic(ConnectionFactory activeMQConnectionFactory) {
DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();
bean.setPubSubDomain(true);
bean.setConnectionFactory(activeMQConnectionFactory);
return bean;
}

// queue模式的ListenerContainer
@Bean
public JmsListenerContainerFactory<?> jmsListenerContainerQueue(ConnectionFactory activeMQConnectionFactory) {
DefaultJmsListenerContainerFactory bean = new DefaultJmsListenerContainerFactory();
bean.setConnectionFactory(activeMQConnectionFactory);
return bean;
}
}
6.编写测试类


简单记录下springboot+jms+activemq

原文:https://www.cnblogs.com/xiaokangk/p/11663194.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!