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);
        }
    }
}
相关推荐
望眼欲穿的程序猿5 分钟前
Vscode Clangd 无法索引 C++17 或者以上标准
java·c++·vscode
带刺的坐椅14 分钟前
Spring-AI 与 Solon-AI 深度对比分析报告
java·spring·ai·llm·solon·spring-ai·solon-ai
码事漫谈19 分钟前
AI提效,到底能强到什么程度?
前端·后端
IT_陈寒20 分钟前
React hooks依赖数组这个坑差点把我埋了
前端·人工智能·后端
爱码少年22 分钟前
JAVA获取客户端真实IP地址经典写法与Lambda写法对比
java
RATi GORI25 分钟前
springBoot连接远程Redis连接失败(已解决)
spring boot·redis·后端
做个文艺程序员29 分钟前
Spring AI + Qwen3.5 实现多步 Agent:从工具调用到自主任务拆解的踩坑全记录
java·人工智能·spring
gentle_ice36 分钟前
初入社会的我该何去何从
java
阿祖zu1 小时前
内容创作 AI 透明化声明倡议与项目开源
前端·后端·github
Kiling_07041 小时前
Java多态、final与抽象类:面向对象编程进阶指南
java·开发语言