2011-07-29 6 views
2

まずは、Java EEをSpring! 私は、インターセプタバインディングとして機能しているいくつかの自己定義アノテーションを持っています。私はこれらの注釈のシングルを使用したいが、ほとんどのメソッドは、私はこのように使用するいくつかの方法についてはJava EE:1つのインターセプタアノテーションをバインドする

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

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

が、私はこれらをバンドルすることができます私はこのように私のメソッドにアノテーションを使用し注釈のセットは1つにまとめられますか?私はコードを一つのインターセプタに書くことができません。なぜなら、それらのメソッドを別々に使いたいからです。

@Stereotypeの定義は可能ですが、わかっている限り、これはクラス全体を単一のメソッドではなく定義するために使用されています。

答えて

0

(章9.6インターセプタは、継承と結合)

私は他のインターセプタバインディングから継承されたインターフェイスをバインドインターセプタを使用することができます。それは次のようになります。

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

は今、私は豆の方法とインターセプタのすべてが呼び出されるに結合新しいインターセプターを使用することができます。

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

私はあなたがステレオタイプで正しいパスにいると言います。

Java EE 6チュートリアルでは、例として、クラス(例:@Model)でしか使用していませんが、カスタム注釈で@TYPE(MEHOD)を宣言することもできます私はそれが動作すると仮定します。私は、JBoss溶接のドキュメントに解決策を見つけたいくつかのよく知られている検索エンジンの助けを借りて

+0

おかげでたくさんのお返事!もちろん、私は既にステレオタイプのアプローチを試していましたが、少なくともインターセプタにとっては型の注釈には使えないことに気付きました。本当の理由は、私が一緒にバインドしたいアノテーションはすべて@InterceptorBindingsです。これらのために、ターゲットタイプのメソッドとタイプが必要です。しかし、@ @ステレオタイプでそれらを2つ使用すると、@ @ターゲット(TYPE)にする必要があります。 – Steve