Springboot整合ActiveMQ
1.先导入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> <version>2.5.4</version> </dependency>
2.配置activemq
spring.activemq.broker-url=tcp://IP地址:61616 spring.activemq.user=admin spring.activemq.password=admin #判断队列还是主题 false为队列 true为主题 不写的默认值也是队列 spring.jms.pub-sub-domain=false #自己定义队列名称 myqueue=boot-activemq-queue
3.配置Bean
@Component @EnableJms //开启jms适配的注解 public class ConfigBean { @Value("${myqueue}") private String myQueue; //按照刚刚配置的东西创建一个队列 @Bean public Queue queue(){ return new ActiveMQQueue(myQueue); } }
4.配置生产者
@Component public class Querue_Produce { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; public void produceMsg(){ jmsMessagingTemplate.convertAndSend(queue,"***********:"+ UUID.randomUUID().toString().substring(0,6)); } }
5.测试
@Resource private Querue_Produce querue_produce; @Test void testSend() throws Exception { querue_produce.produceMsg(); }
新需求
每三分秒生产一个队列。
//间隔事件定时生产 每三秒执行一次 @Scheduled(fixedDelay = 3000) public void produceMsgScjeduled() { jmsMessagingTemplate.convertAndSend(queue,"***********Scheduled:" + UUID.randomUUID().toString().substring(0, 6)); System.out.println("***********Scheduled send"); }
然后在主启动类上添加注解
@EnableScheduling //激活定时任务
消费者接收消息
@JmsListener(destination = "${myqueue}") //设置监听器 public void receive(TextMessage textMessage) throws JMSException{ System.out.println("*****消费者收到消息:"+ textMessage.getText()); }
消息延迟
1.要使用延迟消息,需要在activemq.xml中开启
在生产消息的时候添加消息延迟
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@Resource(name = "queue")
private Queue queue;
public void produceMsg() {
Map<String, Object> headers = new HashMap<>();
//发送延迟队列,延迟24 小时
headers.put(ScheduledMessage.AMQ_SCHEDULED_DELAY, 1000 * 3600 * 24);
jmsMessagingTemplate.convertAndSend(queue,"***********:" + UUID.randomUUID().toString().substring(0, 6),headers);
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)