欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 时评 > java springboot 集成activeMQ(保姆级别教程)

java springboot 集成activeMQ(保姆级别教程)

2025/2/24 0:56:34 来源:https://blog.csdn.net/m0_50641264/article/details/141459676  浏览:    关键词:java springboot 集成activeMQ(保姆级别教程)

java springboot 集成activeMQ

1.配置信息

spring: # 配置消息队列activemq:broker-url: tcp://127.0.0.1:61616user: adminpassword: admin

2.ActiveMqConfig 消息队列配置信息


import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.annotation.EnableJms;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.config.SimpleJmsListenerContainerFactory;
import org.springframework.jms.core.JmsMessagingTemplate;import javax.jms.ConnectionFactory;@Configuration
@EnableJms //启动消息队列
public class ActiveMqConfig {@Value("${spring.activemq.broker-url}")private String brokerUrl;@Value("${spring.activemq.user}")private String username;@Value("${spring.activemq.password}")private String password;@Beanpublic ConnectionFactory connectionFactory(){return new ActiveMQConnectionFactory(username, password, brokerUrl);}@Beanpublic JmsMessagingTemplate jmsMessageTemplate(){return new JmsMessagingTemplate(connectionFactory());}// 在Queue模式中,对消息的监听需要对containerFactory进行配置@Bean("queueListener")public JmsListenerContainerFactory<?> queueJmsListenerContainerFactory(ConnectionFactory connectionFactory){SimpleJmsListenerContainerFactory factory = new SimpleJmsListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setPubSubDomain(false);return factory;}}

3.封装发送信息方法

  • 发送信息接口
import javax.jms.Destination;public interface IMQSendMsgService {/*** activeMq发送信息* @param destination* @param message*/public void mqSendMessage(Destination destination, final String message);
}
  • 接口实现
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.activemq.ISendMsgService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.stereotype.Service;import javax.jms.Destination;@Slf4j
@Service
public class MQSendMsgServiceImpl implements IMQSendMsgService {@Autowiredpublic JmsMessagingTemplate jmsMessagingTemplate;@Overridepublic void mqSendMessage(Destination destination, String message) {jmsMessagingTemplate.convertAndSend(destination, message);}
}

4.消息队列在项目中的使用

4.1消息队列发送信息
// 下单后记录商品项列表@Value("${spring.activemq.place-order-record-product-items}")private String placeOrderRecordProductItems;@AutowiredIMQSendMsgService mqSendMsgService;@PostMapping(value = "/send")public String sendMSG(@RequestBody User user){String orderHistoryStr = JSON.toJSONString(user);mqSendMsgService.mqSendMessage(new ActiveMQQueue(placeOrderRecordProductItems), orderHistoryStr);}
4.2消息队列监听获取消费消息
@Slf4j
@Component
public class ActiveMQListenSendMsg {@AutowiredIMQSendMsgService mqSendMsgService;@JmsListener(destination="${spring.activemq.send-msg-after-execute-flow}", containerFactory="queueListener")public void AfterExecuteFlowSendMag(String message){// 业务代码写在这里}
}	    
有不懂的小伙伴欢迎给我留言,看到之后会回复,感谢大家的关注

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词