1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package test.aop;
18
19 import org.aspectj.lang.annotation.Around;
20 import org.aspectj.lang.annotation.Aspect;
21 import org.aspectj.lang.annotation.Before;
22
23 import org.springframework.core.Ordered;
24
25 @Aspect("pertarget(execution(* *.getSpouse()))")
26 public class PerTargetAspect implements Ordered {
27
28 public int count;
29
30 private int order = Ordered.LOWEST_PRECEDENCE;
31
32 @Around("execution(int *.getAge())")
33 public int returnCountAsAge() {
34 return count++;
35 }
36
37 @Before("execution(void *.set*(int))")
38 public void countSetter() {
39 ++count;
40 }
41
42 @Override
43 public int getOrder() {
44 return this.order;
45 }
46
47 public void setOrder(int order) {
48 this.order = order;
49 }
50
51 }