<component class="fullQualifiedClassName"> <aspect pointcut="pointcut" (1) > content </aspect> </component>
| (1) |
|
<aspect>要素の内容には次のものを記述することができます.
OGNL式または<component>要素
<description>要素
<aspect>要素の内容にOGNL式と<component>要素の両方を記述した場合,<component>要素は無視されます.
<component>要素には複数の<aspect>要素を記述することができます.
その場合,複数の<aspect>要素のpointcut属性で選択されたメソッドには,
複数のインターセプタが<aspect>要素の記述された順番で適用されます.
インターセプタを適用するメソッドを正規表現で指定します. 正規表現はカンマ区切りで複数並べることができます.
次の例では,doで始まるメソッドとinitで始まるpublicメソッドが選択されます.
<component name="hoge"> <aspect pointcut="do.*,init.*">traceInterceptor</aspect> </component>
オーバーライドされたメソッドの一部だけを選択することはdiconではできません. 同名のメソッドは全部選択されます
(ただしpublicメソッドのみ).
アノテーションでは特定のメソッドだけを選択することができます.「」
<component class="fullQualifiedClassName"> <intertype> content </interType> </component>
<interType>要素の内容には次のものを記述することができます.
OGNL式または<component>要素
<description>要素
<interType>要素の内容にOGNL式と<component>要素の両方を記述した場合,<component>要素は無視されます.
<component>要素には複数の<interType>要素を記述することができます.
その場合,
複数のインタータイプが<interType>要素の記述された順番で適用されます.