一、AOP的基本概述:
1、什么是AOP呢:
AOP面向切面编程。AOP是OOP的扩展和延伸,解决开发遇到的问题。


二、Spring的底层的AOP实现原理:
1)动态代理:
JDK动态代理:只能对实现了接口类产生代理。


Cglib动态代理(类似于javassist第三方代理技术),对没有实现接口的类产生代理对象,生成子类对象。


三、Spring的AOP开发(AspectJ 的XML的方式)

四、AOP相关的术语:

五、Spring的AOP的入门(AspectJ 的XML的方式):
1、创建web项目,引入jar包:
1)引入基本的开发包:
2)引入AOP开发相关的jar包:

2、引入Spring的配置文件:
1)引入AOP的约束:

2)编写目标类并完成配置:


3)编写测试类:
Spring整合Junit单元测试:

4)编写一个切面类:
编写切面:

将切面类交给Spring:

通过AOP的配置实现:

六、Spring的通知类型:
1、前置通知:在目标方法执行之前进行操作:


2、后置通知:在目标方法执行之后进行操作:




3、环绕通知:在目标方法执行之前和之后进行操作:
环绕通知可以阻止目标方法的执行:



4、异常抛出通知:在程序出现异常的时候,进行操作:






5、最终通知:无论代码是否有异常,总会执行:
不管有没有异常,最终通知都会执行:



6、引介通知(不用会)
七、Spring的切入点表达式写法:
1、切入点表达式语法:


来个切面,想增强就增强,不想要直接去掉:特别方便灵活。
