事务注解转换器
说白了就是该接口的实现会将@Transactional注解转换成TransactionAttribute
,该接口只有一个抽象方法
@Nullable
TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae);
其中SpringTransactionAnnotationParser类是该接口的实现之一,下面以该类作为演示
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@Transactional(propagation = Propagation.REQUIRED)
public class Class01 {
@Transactional(propagation = Propagation.NEVER)
public void m1() {
}
public static void main(String[] args) throws NoSuchMethodException, SecurityException {
SpringTransactionAnnotationParser tap = new SpringTransactionAnnotationParser();
Class<?> clazz = Class01.class;
Method method = Class01.class.getMethod("m1");
TransactionAttribute ta1 = tap.parseTransactionAnnotation(clazz);
TransactionAttribute ta2 = tap.parseTransactionAnnotation(method);
System.out.println(ta1);
System.out.println(ta2);
}
}