SpringBoot 整合 ActiveMQ
-
依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
-
配置文件
spring.activemq.broker-url=nio://127.0.0.1:61617 spring.activemq.user=admin spring.activemq.password=admin spring.activemq.packages.trust-all=true spring.jms.pub-sub-domain=true
-
配置类
@Configuration public class ActivemqConfig { //监听Topic @Bean(name = "jmsListenerContainerTopic") public JmsListenerContainerFactory<?> jmsListenerContainerTopic(ConnectionFactory connectionFactory) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setPubSubDomain(true); factory.setConnectionFactory(connectionFactory); //自动提交 factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE); return factory; } //监听Queue @Bean(name = "jmsListenerContainerQueue") public JmsListenerContainerFactory<?> jmsListenerContainerQueue(ConnectionFactory connectionFactory) { DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory(); factory.setConnectionFactory(connectionFactory); //自动提交 factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE); return factory; } }
-
发送消息
@Service public class ActivemqProducerService { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private JmsTemplate jmsTemplate; public void jmsTemplateTest() { ActiveMQQueue user = new ActiveMQQueue("user"); jmsTemplate.setDefaultDestination(user); jmsTemplate.setSessionTransacted(false); jmsTemplate.send(new MessageCreator() { @Override public Message createMessage(Session session) throws JMSException { TextMessage textMessage = session.createTextMessage("user"); textMessage.setText("aaaaa"); return textMessage; } }); } public void jmsMessagingTemplateTest() throws JMSException { ArrayList<String> strings = new ArrayList<>(); strings.add("aaa"); strings.add("bbb"); //ActiveMQTopic user = new ActiveMQTopic("user"); ActiveMQQueue user = new ActiveMQQueue("user"); jmsMessagingTemplate.convertAndSend(user, strings); ConnectionFactory connectionFactory = jmsMessagingTemplate.getConnectionFactory(); Connection connection = connectionFactory.createConnection(); } }
-
接收消息
@Service public class ActivemqConsumerService { @JmsListener(destination = "user", containerFactory = "jmsListenerContainerQueue") public void consumerQueueMessage(Message message) { System.out.println(message); } @JmsListener(destination = "user", containerFactory = "jmsListenerContainerTopic") public void consumerTopicMessage(Message message) { System.out.println(message); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)