2011-07-29 46 views
2

首先:我想使用Java EE而不是Spring! 我有一些自定義的註釋充當攔截器綁定。我用的是註解我的方法是這樣的:Java EE:將一些攔截器註釋綁定到一個單獨的一個

@Logged 
@Secured 
@RequestParsed 
@ResultHandled 
public void doSomething() { 
    // ... 
} 

對於一些方法,我想用這些註釋的單,但我想用這樣的大多數方法:

@FunctionMethod 
public void doSomething() { 
    // ... 
} 

我可以捆綁這些一組註釋到一個?我不能在一個攔截器中編寫代碼,因爲我想單獨使用它們的某些方法。

我知道有一個@Stereotype定義可能,但據我所知,這是用來定義一個整體類而不是一個單一的方法。

回答

0

對於某些公知的搜索引擎的幫助下,我發現的JBoss虛焊的文檔中的溶液(第9.6攔截器的繼承結合)

我可以使用包括來自其它攔截器綁定繼承一個攔截器結合界面。它看起來是這樣的:

@InterceptorBinding 
@Target({ ElementType.METHOD, ElementType.TYPE }) 
@Retention(RetentionPolicy.RUNTIME) 
@Logged 
@Secured 
@RequestParsed 
@ResultHandled 
public @interface FunctionMethod { 
    // clean and empty 
} 

現在,我可以使用新的攔截器對bean方法,所有的攔截器將被稱爲綁定:

@FunctionMethod 
public void doSomething() { 
    // ... 
} 
0

我會說,你是在正確的傳球與刻板印象。

這是正確的,例子和官方的Java EE 6教程只使用它作爲一個例子(例如@Model),但你可以在自定義註釋中聲明@TYPE(MEHOD)然後我認爲它有效。

+0

非常感謝您的回覆!當然,我已經嘗試了Stereotype方法,並且我意識到至少對於攔截器來說,它可以用於類型註釋。真正的原因是我想要綁定在一起的註釋都是'@ InterceptorBindings'。對於這些目標類型的METHOD和TYPE是必需的。但是如果我在@ @ Stereotype中使用它們中的一些,那麼這個也必須是'@Target(TYPE)'。 – Steve