<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>
要素の記述された順番で適用されます.