spring 事件监听使用@TransactionalEventListener,解决同一个线程中拿不到另一个事务的数据(让之前的事务提交)

定义事件

java 复制代码
package com.amarsoft.lease.mail.event;

import org.springframework.context.ApplicationEvent;
public class TestEvent extends ApplicationEvent {
    private String flowId;

    public TestEvent (Object source, String flowId) {
        super(source);
        this.flowId = flowId;
    }

    public String getFlowId() {
        return flowId;
    }

    public void setFlowId(String flowId) {
        this.flowId = flowId;
    }
}

发布事件

java 复制代码
applicationContext.publishEvent(new TestEvent(flowId, flowId));

监听事件

java 复制代码
@Slf4j
@Component
public class BillSendFlowMailListener {

    @TransactionalEventListener
    public void sendBillSendFlowMail(BillSendFlowMailEvent event) {
        String flowId = event.getSource().toString();
        try {
            //业务逻辑
        }catch (Exception e) {
            log.error("事件测试,flowId" + flowId, e);
        }
    }
}
相关推荐
fliter42 分钟前
Arborium:把 tree-sitter 语法高亮打包成 Rust 文档生态的基础设施
后端
张三丰21 小时前
不会写代码的高管用Claude Code两天上线新程序,工程师接手后发现:一个Bug,让AI一天烧掉一个月服务器费!
后端
Ai拆代码的曹操1 小时前
从一条转账 SQL 到分布式事务:5 种方案的全方位对比与实战
后端
掘金小豆1 小时前
Spring 事务失效的 6 大场景,你踩过几个?
后端·spring·面试
im_lanny1 小时前
Agent = Model + Harness:决定 AI 智能体上限的,往往不是模型而是“装具”
后端
阿文和她的Key1 小时前
AI新词太多?把它们串成一条线就清楚了
后端
笨鸟飞不快1 小时前
当规则比代码跑得快:我对用 LiteFlow 编排信贷业务的一点思考
后端·设计
用户3721574261352 小时前
Java 将 Word 文档转换为 Markdown:基础转换与导出选项详解
java
苏三说技术2 小时前
干掉if...else,这个规则引擎真香!
后端
xiaoshuai10242 小时前
把权限校验从手写里解放出来:RBAC 注解 + 过滤器链的设计
后端