[Seasar-user:419] Re: AOP-DAO

B gluegent.com Masataka Kurihara kurihara
2004年 3月 3日 (水) 21:00:15 JST


栗原です。

> のようにHelloインターフェースの実装がなくても、
(中略)
> のようにAdviceが実装を肩代わりしてくれます。

  コンテナ経由をやってみたら、NGでした。register(Class clazz) で、
clazz.getInterfaces() を呼び出して NullPointerException です。理解
ちがってますか?

public interface Speaker {
  public String say();
}

public class TestAdvice implements AroundAdvice {
  public Object invoke(Joinpoint joinpoint) throws Throwable {
    System.out.println("TestAdvice: " 
      + joinpoint.getMethod().getName());
    return null;
  }
}

public class Bootstrap {
  public static void main(String[] args) {
    S2Container container = new S2ContainerImpl();
    ComponentDef component = new ComponentDefImpl(Speaker.class);
    container.register(component);
    Pointcut pointcut = new PointcutImpl(new String[]{"say"});
    AspectDef aspect = new AspectDefImpl(new TestAdvice(), pointcut);
    component.addAspectDef(aspect);
    Speaker speaker = (Speaker)container.getComponent(Speaker.class);
    speaker.say();
  }
}


--
株式会社グルージェント
栗原 傑享(くりはら まさたか)
渋谷区渋谷3-7-6 第6矢木ビル4F
TEL:03-5469-8869 FAX:03-5469-8879
URL:http://www.gluegent.com/
--





Seasar-user メーリングリストの案内