【springboot整合ActiveMQ】-发送消息到中间件
本文为ActiveMQ中队列模式的生产者
一、导包:
<!--activeMq--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <!--消息队列连接池--> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-pool</artifactId> <version>5.15.0</version> </dependency>
二、在配置文件中添加连接信息:
spring:
activemq:
broker-url: tcp://10.00.100.0:8081
user: XXX
password: XXXXX
jms:
pub-sub-domain: false
myqueue: queueName
三、生产者Util如下,如果不采用封装成Util的方式的话,可以在实现类中直接使用 @Autowired 注解进行注入,要封装成Util则需要在Util中用构造方法的方式注入JmsMessagingTemplate 和Queue ,否则会注入不进去
import lombok.extern.slf4j.Slf4j; import org.apache.activemq.command.ActiveMQQueue; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsMessagingTemplate; import org.springframework.jms.core.JmsTemplate; import org.springframework.stereotype.Component; import javax.jms.Queue; @Slf4j @Component public class ActiveMqProducerUtil { // @Autowired // public JmsTemplate jmsMessagingTemplate; // @Autowired // public Queue queue; //JmsMessagingTemplate是Springboot的Jms模板,Spring的是JmsTemplate private static JmsMessagingTemplate jmsMessagingTemplate; //把ConfigBean类的ActiveMQQueue注入进来 private static Queue queue; //构造注入对象 public ActiveMqProducerUtil(JmsMessagingTemplate jmsMessagingTemplate, Queue queue) { ActiveMqProducerUtil.jmsMessagingTemplate = jmsMessagingTemplate; ActiveMqProducerUtil.queue = queue; } public static boolean produceMessage(String messageStr) { if (StringUtils.isBlank(messageStr)) { log.error(String.format("messageStr:", messageStr)); return false; } try { jmsMessagingTemplate.convertAndSend(queue, messageStr); return true; } catch (Exception e) { log.error(String.format("messageStr:发布失败", e.getMessage())); return false; } } }
实体类:
import lombok.Data; import java.util.Date; @Data public class UserVo { Date birthday; String name; String phone; }
生产者业务部分(直接通过类名调用):
UserVo user= new UserVo(); user.setBirthday(new Date()); user.setName(""张三); user.setPhone("18945670000"); String userStr = JSON.toJSONString(user); ActiveMqProducerUtil.produceMessage(userStr);
本文作者:IIIID
本文链接:https://www.cnblogs.com/Oxyy/p/16139227.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步