news 2026/4/16 16:12:25

Springboot中使用activemq

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Springboot中使用activemq

1. 引入ActiveMQ的SpringBoot插件

<!-- ActiveMQ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>

2. application中增加activemq的配置

spring: activemq: #ActiveMQ服务器地址 broker-url: tcp://127.0.0.1:61616 user: admin password: admin jms: #false == Queue ; true == Topic ; 默认为false pub-sub-domain: false

3. Java代码

package com.geofly.apicall.mq; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.geofly.apicall.model.entity.FlowConfig; import com.geofly.apicall.service.FlowConfigService; import com.geofly.apicall.service.FlowEngineService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; import java.util.Map; /** * ActiveMQ 消息消费者 * 接收消息并触发指定的流程 */ @Slf4j @Component public class ActiveMQConsumer { @Autowired private FlowConfigService flowConfigService; @Autowired private FlowEngineService flowEngineService; /** * 接收消息并触发流程 * 消息格式示例: {"triggerName": "workorder_finish", "params": {"id": 123, "status": "done"}} * * @param message JSON 格式的消息字符串 */ @JmsListener(destination = "${spring.activemq.destination:flow.trigger.destination}") public void receiveMessage(String message) { log.info("接收到 ActiveMQ 消息: {}", message); try { // 1. 解析消息 if (!JSONUtil.isTypeJSONObject(message)) { log.warn("消息不是有效的 JSON 对象: {}", message); return; } JSONObject json = JSONUtil.parseObj(message); String triggerName = json.getStr("triggerName"); // 兼容性处理:如果消息中直接传了 flowCode 也可以 String flowCode = json.getStr("flowCode"); Map<String, Object> params = null; if (json.containsKey("params")) { params = json.get("params", Map.class); } // 2. 查找流程 FlowConfig flowConfig = null; if (triggerName != null) { flowConfig = flowConfigService.getByTriggerName(triggerName); } else if (flowCode != null) { flowConfig = flowConfigService.getOne( new LambdaQueryWrapper<FlowConfig>() .eq(FlowConfig::getFlowCode, flowCode) ); } if (flowConfig == null) { log.error("未找到对应的流程,triggerName: {}, flowCode: {}", triggerName, flowCode); return; } // 3. 检查状态 if (flowConfig.getStatus() != 1) { log.warn("流程已禁用: {} ({})", flowConfig.getFlowName(), flowConfig.getFlowCode()); return; } // 4. 执行流程 log.info("从 ActiveMQ 消息触发流程: {} (ID: {})", flowConfig.getFlowName(), flowConfig.getId()); flowEngineService.executeFlow(flowConfig.getId(), params); } catch (Exception e) { log.error("处理 ActiveMQ 消息异常: {}", message, e); } } }

这里监听了一个事件,如果ActiveMQ收到相应的事件就会触发这个方法

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:28:50

RocksDB 可直接运行的实战示例(多语言 + 完整安装 + 基础 CRUD + 事务 + 生产调优)

包含 C++(原生最优)、Java (企业级主流)、Python (快速上手) 三种最常用语言的完整代码,所有示例复制即可运行,涵盖你需要的「安装步骤、基础读写、事务操作、生产级调优参数」,优先级从高到低排序,按需选择即可。 核心前提:RocksDB 是嵌入式键值库,所有操作都是本地库调…

作者头像 李华
网站建设 2026/4/16 13:04:23

SSM222的大学生兼职系统

目录SSM222大学生兼职系统摘要开发技术源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;SSM222大学生兼职系统摘要 针对大学生兼职需求分散、信息不对称等问题&#xff0c;设计并实现基于SSM框架的大学生兼职系统。系统采用SpringSpring…

作者头像 李华
网站建设 2026/4/16 12:58:25

Daz To Blender 跨平台创作全攻略:从零开始实现角色无缝迁移

Daz To Blender 跨平台创作全攻略&#xff1a;从零开始实现角色无缝迁移 【免费下载链接】DazToBlender Daz to Blender Bridge 项目地址: https://gitcode.com/gh_mirrors/da/DazToBlender 还记得那个让你心动的3D角色吗&#xff1f;在Daz Studio中精心雕琢的每一个细节…

作者头像 李华
网站建设 2026/4/16 13:07:06

【深度好文】Skills完全指南:万字详解从入门到精通,建议收藏备用

Skills是Anthropic推出的模块化能力包系统&#xff0c;通过渐进式披露机制实现按需加载&#xff0c;大幅提升Token效率。文章详细介绍了Skills的概念、与MCP/Subagent的区别、创建方法、最佳实践和安全注意事项&#xff0c;展示了如何构建个人Skills库。Skills正在成为AI Agent…

作者头像 李华
网站建设 2026/4/16 12:25:48

从零部署Testsigma:开源自动化测试平台实战指南

从零部署Testsigma&#xff1a;开源自动化测试平台实战指南 【免费下载链接】testsigma A powerful open source test automation platform for Web Apps, Mobile Apps, and APIs. Build stable and reliable end-to-end tests DevOps speed. 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/4/16 17:12:50

基于Springboot+Vue的社区智能垃圾管理系统(源码+lw+部署文档+讲解等)

课题介绍 本课题针对社区垃圾分类推行难、投放监管低效、垃圾清运调度无序、居民参与度不足等痛点&#xff0c;设计并实现基于SpringbootVue的社区智能垃圾管理系统&#xff0c;构建集分类引导、投放监管、清运调度、数据统计于一体的智能化社区垃圾管控平台。系统采用前后端分…

作者头像 李华