さて、さっきのHello worldを書いてて思ったけどめんどくせ〜!
何がって、public void org.okazuki.aspectj.hello.HelloWorld.sayHello()っていっぱい書くのが。
何かパッケージ名は、同じパッケージにいるかimportしてる場合は省略可能らしい。
早く教えてよ!!
まぁ、それでも二箇所に同じことを書くのはめんどくさいわけで。
そんなときのために、何処に割り込みをかけるのかを事前に定義しておける。
それがpointcutっていうのかな。
定義の仕方はこんな感じ
pointcut 名前() : 何処か;
さっきのHelloWorldだと
pointcut sayHello() : execution(public void HelloWorld.sayHello());
になる。
定義したpointcutは、afterやbeforeの後に書ける!
つまり、さっきのHelloWorldAspectはこうなる。
package org.okazuki.aspectj.hello; public aspect HelloWorldAspect { pointcut sayHello() : execution(public void HelloWorld.sayHello()); before() : sayHello() { System.out.println("before Hello world"); } after() returning() : sayHello() { System.out.println("after Hello world"); } }
多少楽になったね。