1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.christianschenk.aspectjtest.aspects;
20
21 import org.apache.log4j.Logger;
22 import org.aspectj.lang.JoinPoint;
23 import org.aspectj.lang.annotation.After;
24 import org.aspectj.lang.annotation.Around;
25 import org.aspectj.lang.annotation.Aspect;
26 import org.aspectj.lang.annotation.Before;
27 import org.aspectj.lang.annotation.Pointcut;
28
29 @Aspect
30 public class AspectJAnnotation {
31
32 private static final Logger log = Logger.getLogger(AspectJAnnotation.class);
33
34 @Pointcut("execution(* org.christianschenk.*.Main.helloWorld())")
35 public void helloWorld() {}
36
37 @Before("helloWorld()")
38 public void beforeHelloWorld(final JoinPoint thisJoinPoint) {
39 log.debug("Before: " + thisJoinPoint.getStaticPart().getSignature().getName());
40 }
41
42 @After("helloWorld()")
43 public void afterHelloWorld(final JoinPoint thisJoinPoint) {
44 log.debug("After: " + thisJoinPoint.getStaticPart().getSignature().getName());
45 }
46
47 @Around("execution(org.christianschenk.*.Main.new())")
48 public void aroundMainConstructor(final JoinPoint thisJoinPoint) {
49 log.debug("Around : " + thisJoinPoint.getStaticPart().getSignature().getName());
50 }
51 }