我必须在我的webapp中使用3个不同的事务管理器。所以我根据Spring reference(10.5.6.3自定义快捷方式注释)编写了自己的注释。如何扩展Spring注解@Transactional
一个注解(使用一个特定的事务管理器)是这样的:使用自定义@CustomerTX注解注释我的服务层时
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{
}
一切工作正常。但是我必须为我的注释提供更多选项,如readonly = true,rollbackFor =等等。因为你不能“扩展”一个注释(我真的只需要从Spring扩展@Transactional注解),那么这个正确的实现是什么?
你真的是我必须写这样的事情(假设我只是想有设置为只读交易): @Target({ElementType.METHOD,ElementType.TYPE}) @Retention( RetentionPolicy.RUNTIME) @Transactional(值= “客户”,只读= TRUE) 公共@interface CustomerTXReadonly { } 这不可能是唯一的工作解决... – 2010-08-31 10:58:55
恐怕是这样,因为注释的局限性。正如我所说:无论是或写你自己的方面(我宁愿) – 2010-08-31 11:01:00
感谢您的帮助。我会尝试写我自己的方面。可惜的是注释不可扩展:( – 2010-08-31 14:35:55