事务注解转换器

说白了就是该接口的实现会将@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);
}
}