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);
        }
    }
}
相关推荐
喷火龙8号1 分钟前
MSC中的Model层:数据模型与数据访问层设计
后端·架构
5ycode6 分钟前
dify项目结构说明与win11本地部署
后端·开源
LaoZhangAI10 分钟前
GPT-image-1 API如何传多图:开发者完全指南
前端·后端
fouryears_2341718 分钟前
深入拆解Spring核心思想之一:IoC
java·后端·spring
codervibe20 分钟前
从 0 到 1,我如何独立开发一套教务系统(EduCore)
后端
error_cn21 分钟前
podman安全性设置
后端
一个热爱生活的普通人22 分钟前
Go 泛型终极指南:告别 interface{},写出更安全、更强大的代码!
后端·go
求知摆渡22 分钟前
从零开始搭建typecho
前端·后端
极客悟道23 分钟前
彻底搞懂Java值传递:90%开发者都会踩的坑
前端·后端
坚持学习永不言弃23 分钟前
FactoryBean 和 BeanFactory详解
后端