12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.annotation.AfterReturning;
- import org.aspectj.lang.annotation.Aspect;
-
- @Aspect
- public class AfterReturningTest {
-
- public static void main(String[] args) {
- new B1().start();
- }
-
- // include "JoinPoint" in the argument list
- @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
- public void afterJP(JoinPoint jp, B1 r) {
- r.stop();
- }
-
- // include "JoinPoint.StaticPart" in the argument list
- @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
- public void afterJPSP(JoinPoint.StaticPart jp, B1 r) {
- r.stop();
- }
-
- // include "JoinPoint.EnclosingStaticPart" in the argument list
- @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
- public void afterJPESP(JoinPoint.EnclosingStaticPart jp, B1 r) {
- r.stop();
- }
-
- // include "JoinPoint and JoinPoint.EnclosingStaticPart" in the argument list
- @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
- public void afterJPESP2(JoinPoint jp1, JoinPoint.EnclosingStaticPart jp, B1 r) {
- r.stop();
- }
-
- // make sure it still works if "JoinPoint" is second in the argument list
- @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
- public void afterJP2(B1 r, JoinPoint jp) {
- r.stop();
- }
- }
-
- class B1 {
-
- public B1 start() {
- return new B1();
- }
-
- public void stop() {
- }
-
- }
|