You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AfterReturningTest.java 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import org.aspectj.lang.JoinPoint;
  2. import org.aspectj.lang.annotation.AfterReturning;
  3. import org.aspectj.lang.annotation.Aspect;
  4. @Aspect
  5. public class AfterReturningTest {
  6. public static void main(String[] args) {
  7. new B1().start();
  8. }
  9. // include "JoinPoint" in the argument list
  10. @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
  11. public void afterJP(JoinPoint jp, B1 r) {
  12. r.stop();
  13. }
  14. // include "JoinPoint.StaticPart" in the argument list
  15. @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
  16. public void afterJPSP(JoinPoint.StaticPart jp, B1 r) {
  17. r.stop();
  18. }
  19. // include "JoinPoint.EnclosingStaticPart" in the argument list
  20. @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
  21. public void afterJPESP(JoinPoint.EnclosingStaticPart jp, B1 r) {
  22. r.stop();
  23. }
  24. // include "JoinPoint and JoinPoint.EnclosingStaticPart" in the argument list
  25. @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
  26. public void afterJPESP2(JoinPoint jp1, JoinPoint.EnclosingStaticPart jp, B1 r) {
  27. r.stop();
  28. }
  29. // make sure it still works if "JoinPoint" is second in the argument list
  30. @AfterReturning(pointcut = "execution(public B1 B1.start())", returning = "r")
  31. public void afterJP2(B1 r, JoinPoint jp) {
  32. r.stop();
  33. }
  34. }
  35. class B1 {
  36. public B1 start() {
  37. return new B1();
  38. }
  39. public void stop() {
  40. }
  41. }