2008年12月13日土曜日

Seasar2を使ってみます(4)

次はAOPです。
わりあいすんなり行きました。

まず自前のIntercepterを準備します。
package test;

import org.aopalliance.intercept.MethodInvocation;
import org.seasar.framework.aop.interceptors.AbstractInterceptor;

public class MyInterceptor extends AbstractInterceptor {

private static final long serialVersionUID = 1L;

@Override
public Object invoke(MethodInvocation method) throws Throwable {

System.out.println("Before");
Object ret = method.proceed();
System.out.println("After");
return ret;

}

}

次はexample2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component class="java.util.ArrayList" name="list">
<initMethod name="add"><arg>"Hoge"</arg></initMethod>
<initMethod name="add"><arg>"Piyo"</arg></initMethod>
</component>

<component class="java.lang.String" name="autoBinding"/>
<component class="java.lang.String" name="useAnnotation"/>

<component class="test.Hello" name="hello">
<arg>list</arg>
<property name="autoBinding">"自動バインディング"</property>
<!-- ダメだった
<property name="useAnnotation">"アノテーション利用"</property>
-->
<aspect pointcut="sayHello">
<component class="test.MyInterceptor"
name="intercepterTest"/>
</aspect>
</component>
</components>

MainとHelloは変更なしです(AOPだからね)。

以上です。(はて、しかしこれをどう使うのかな)
.

0 件のコメント: