我必須在我的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