1 package com.example.spring;
2
3 public class TimeHandler {
4 public void beforTime()
5 {
6 System.out.println("前置增强:CurrentTime = " + System.currentTimeMillis());
7 }
8 }
1 package com.example.spring;
2
3 public class HelloWorld {
4 public void printHello(){
5 System.out.println("Hello Aop.");
6 }
7 }
1 xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:aop="http://www.springframework.org/schema/aop"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
7 http://www.springframework.org/schema/aop
8 http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
9
10
11
12 <bean id="helloWorld" class="com.example.spring.HelloWorld"/>
13 <bean id="timeHandler" class="com.example.spring.TimeHandler"/>
14
15
16 <aop:config>
17
18
19 <aop:pointcut id="pointcut1" expression="execution(* com.example.spring.HelloWorld.*(..))"/>
20
21
22 <aop:aspect ref="timeHandler">
23
24
25 <aop:before method="beforTime" pointcut-ref="pointcut1"/>
26 aop:aspect>
27 aop:config>
28 beans>
1 package com.example.spring;
2
3 import org.springframework.context.support.AbstractApplicationContext;
4 import org.springframework.context.support.ClassPathXmlApplicationContext;
5
6 public class Application {
7 public static void main(String[] args) {
8 //bean配置文件所在位置 D:\\IdeaProjects\\spring\\src\\Beans.xml
9 //使用AbstractApplicationContext容器
10 AbstractApplicationContext cOntext= new ClassPathXmlApplicationContext("file:D:\\IdeaProjects\\spring\\src\\aop.xml");
11 //得到配置创建的对象
12 HelloWorld helloWorld = (HelloWorld)context.getBean("helloWorld");
13 helloWorld.printHello();
14 }
15 }
前置增强:CurrentTime = 1510134673408
Hello Aop.
1 package com.example.spring;
2
3 import org.aspectj.lang.ProceedingJoinPoint;
4
5 public class TimeHandler {
6 public void beforTime()
7 {
8 System.out.println("前置增强:CurrentTime = " + System.currentTimeMillis());
9 }
10
11 public void afterTime()
12 {
13 System.out.println("后置增强:CurrentTime = " + System.currentTimeMillis());
14 }
15 }
1 xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:aop="http://www.springframework.org/schema/aop"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
7 http://www.springframework.org/schema/aop
8 http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
9
10
11
12 <bean id="helloWorld" class="com.example.spring.HelloWorld"/>
13 <bean id="timeHandler" class="com.example.spring.TimeHandler"/>
14
15
16 <aop:config>
17
18
19 <aop:pointcut id="pointcut1" expression="execution(* com.example.spring.HelloWorld.*(..))"/>
20
21
22 <aop:aspect ref="timeHandler">
23
24
25
26
27
28
29 <aop:after method="afterTime" pointcut-ref="pointcut1"/>
30 aop:aspect>
31 aop:config>
32 beans>
Hello Aop.
后置增强:CurrentTime = 1510134850754
1 package com.example.spring;
2
3 import org.aspectj.lang.ProceedingJoinPoint;
4
5 public class TimeHandler {
6 public void beforTime()
7 {
8 System.out.println("前置增强:CurrentTime = " + System.currentTimeMillis());
9 }
10
11 public void afterTime()
12 {
13 System.out.println("后置增强:CurrentTime = " + System.currentTimeMillis());
14 }
15
16 public void aroundTime(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
17 //方法之前
18 System.out.println("环绕增强:CurrentTime = " + System.currentTimeMillis());
19
20 //执行被增强的方法
21 proceedingJoinPoint.proceed();
22
23 //方法之后
24 System.out.println("环绕增强:CurrentTime = " + System.currentTimeMillis());
25 }
26
27 }
1 xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4 xmlns:aop="http://www.springframework.org/schema/aop"
5 xsi:schemaLocation="http://www.springframework.org/schema/beans
6 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
7 http://www.springframework.org/schema/aop
8 http://www.springframework.org/schema/aop/spring-aop-4.2.xsd">
9
10
11
12 <bean id="helloWorld" class="com.example.spring.HelloWorld"/>
13 <bean id="timeHandler" class="com.example.spring.TimeHandler"/>
14
15
16 <aop:config>
17
18
19 <aop:pointcut id="pointcut1" expression="execution(* com.example.spring.HelloWorld.*(..))"/>
20
21
22 <aop:aspect ref="timeHandler">
23
24
25
26
27
28
29
30
31
32
33 <aop:around method="aroundTime" pointcut-ref="pointcut1"/>
34 aop:aspect>
35 aop:config>
36 beans>
环绕增强:CurrentTime = 1510135559066
Hello Aop.
环绕增强:CurrentTime = 1510135559074