`

TransactionSynchronizationManager 初步

 
阅读更多

只要活动的事务的状态发生了变化就会收到TransactionSynchronizationManager的回调。

 

spring 中如何在一个有事务的方法中,等事务提交后调另外一个方法可以用TransactionSynchronizationAdapter 这个类

 

public abstract class TransactionSynchronizationAdapter implements TransactionSynchronization, Ordered {

	public int getOrder() {
		return Ordered.LOWEST_PRECEDENCE;
	}

	public void suspend() {
	}

	public void resume() {
	}

	public void flush() {
	}

	public void beforeCommit(boolean readOnly) {
	}

	public void beforeCompletion() {
	}

	public void afterCommit() {
	}

	public void afterCompletion(int status) {
	}

}

TransactionSynchronizationAdapter 会根据事务的完成状态去调用相应的afterCommit等
分享到:
评论

相关推荐

    Atomikos jta事务框架改写历程

    ConnectionHolder conHolder = (ConnectionHolder) TransactionSynchronizationManager.getResource(dataSource); if ((!switchDb || !(dataSource instanceof AbstractRoutingDataSource)) && (conHolder != null...

    edb:春天的 jfinal

    DataSource 数据源对象和 jfinal 的配置类 com.jfinal.plugin.activerecord.Config和 spring事务相关的 DataSourceUtils.getConnection、ConnectionHolder、TransactionSynchronizationManager.getResource 类和方法...

    SpringBoot多数据源配置(方式二:在代码中动态切换需要使用哪个数据源).docx

    String dataSourceName = (String) TransactionSynchronizationManager.getAttribute(SELECT_DATA_SOURCE); return (dataSourceName != null ? dataSourceMap.get(dataSourceName) : defaultDataSource); } } //...

    读写分离设计文档1

    判断当前方法是否处于Spring事务的关键在于`TransactionSynchronizationManager.isSynchronizationActive()`,这个方法返回true表示当前存在Spring事务,可以根据事务的readOnly属性决定数据源。 iBatis的`...

    spring-transaction-synchronization:Spring事务同步示例

    Spring提供了TransactionSynchronization接口和TransactionSynchronizationManager类来支持事务的同步处理。 - **TransactionSynchronization接口**:定义了事务开始、提交、回滚、完成时需要执行的方法,如...

    javaweb 通过threadlocal 手动提交事务

    Spring框架也支持使用ThreadLocal进行事务管理,比如使用`TransactionSynchronizationManager`类,它可以管理和协调事务同步,提供更高级别的事务控制。 通过上述方式,开发者可以利用ThreadLocal在Java Web环境中...

    ThreadLocal原理及在多层架构中的应用.pdf

    例如,Spring框架中的TransactionSynchronizationManager、RequestContextHolder、AopContext、LocaleContextHolder等都是利用ThreadLocal来保证线程安全。 在多层架构的应用中,例如从请求接入到响应返回,整个...

    Spring高级之注解驱动开发视频教程

    视频详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 1、课程简介 Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。...n 源码分析-TransactionSynchronizationManager

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    TransactionSynchronizationManager.bindResource(sessionFactory, new SessionHolder(hibernateSession)); ``` 然后,在类中加入以下两个私有函数: ```java private SessionFactory lookupSessionFactory...

    springTranction

    11. **事务同步**:Spring的TransactionSynchronization接口和TransactionSynchronizationManager类允许开发者在事务的生命周期中插入自定义的行为,如清理资源或执行后置处理。 12. **Spring Boot中的事务管理**:...

    对应的文章 Springboot Mybatis 多数据源利用注解动态切换数据库

    String dataSource = TransactionSynchronizationManager.getCurrentTransactionAttribute().getDataSource(); return dataSource; } } ``` 4. **使用注解切换数据源**:在需要切换数据源的方法上添加自定义注解...

    Java 单例模式线程安全问题

    例如,RequestContextHolder、TransactionSynchronizationManager、LocaleContextHolder 等 Bean 都使用 ThreadLocal 来处理非线程安全的状态。 线程安全问题通常是由全局变量及静态变量引起的。若每个线程中对全局...

    SPRING API 2.0.CHM

    All Classes AbstractAdvisorAutoProxyCreator AbstractApplicationContext AbstractApplicationEventMulticaster AbstractAspectJAdvice AbstractAspectJAdvisorFactory AbstractAspectJAdvisorFactory....

    Spring(AbstractRoutingDataSource)实现动态数据源切换示例

    TransactionStatus status = TransactionSynchronizationManager.getCurrentTransactionStatus(); if (status != null) { return status.getTransaction().toString(); // 假设事务ID可以区分数据源 } return ...

Global site tag (gtag.js) - Google Analytics