定义事务注解
@Transaction
注解只能用于方法级别。123456789101112131415package org.smart4j.framework.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 定义需要事务控制的方法 * Created by Roger on 2016/11/30. */ (ElementType.METHOD) (RetentionPolicy.RUNTIME)public Transaction {}
事务操作工具
每个线程维护本地变量Connection,提供开启事务、提交事务、回滚事务等操作。
|
|
事务切面类
TransactionProxy
类实现Proxy
接口,在doProxy()
方法中完成事务控制的相关逻辑。
内部定义一个FLAG_HOLDER
的本地线程变量,用于保证同一线程中事务控制相关逻辑只会执行一次。
使用@Transaction
注解的方法才会执行事务相关逻辑。
|
|
框架中添加事务机制
在AopHelper
类中createProxyMap()
方法中添加事务代理机制addTransactionProxy()
,之前AOP部分只是添加了普通的切面代理。