我必须在我的 web 应用程序中使用 3 个不同的事务管理器。所以我根据Spring参考(第10.5.6.3节自定义快捷方式注释)编写了自己的Annotation。
一个注释(用于使用一个特定的事务管理器)如下所示:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.transaction.annotation.Transactional;
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Transactional("customer")
public @interface CustomerTX{
}
使用自定义的 @CustomerTX 注释注释我的服务层时,一切正常。但是我必须为我的注解提供更多的选项,比如 readonly=true、rollbackFor= 等等。由于您不能“扩展”注释(我真的只需要从 Spring 扩展 @Transactional 注释),因此正确的实现是什么?