一、
1.什么是AOP及实现方式
AOP:Aspect Oriented Programming的缩写,就是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的
一种技术。
主要的功能是:日志记录,性能统计,安全控制,事物处理,异常处理等等
AOP实现方式
预编译
-AspectJ
运行期动态代理(JDK动态代理、CGLib动态代理)
SpringAOP、JbossAOP
2.AOP基本概念


3.SPring中的AOP
Spring AOP的用途

Spring 的AOP实现

有接口和无接口的Spring AOP实现区别

4.Schema-based AOP
4.1 配置切面 aspect


切面aspect 类是对物体特征的抽象,切面就是对横切关注点的抽象
这里就是植入需要进行执行的代码


4.2配置切入点
这些是spring的 aop 和aspect 都支持的

以下只支持spring 自己的



该包下所有类的所有方法

该类下的指定方法 表达式 下图表达式有误
execution( com.etoak.aop.TestPointCut.point(..))
execution(
com.etoak.aop.TestPointCut.*(..))

一个完整的aop congif配置

我的代码配置如下
该包下的 以 Biz结尾的类下的所有方法

切面类

切点 就是切入对象

测试类

after afterReturning 根据xml配置先后 输出 但是在before之后
after thorw 切点不能正常返回 出现异常就会执行throw 正常执行就会执行after return

如果切点方法正常执行 after return 和after 会根据在 xml先后配置顺序执行
after(finally)最终执行 有无异常都会执行这个通知

around 环绕通知配置文件 执行顺序也是根据在 before 和 after 先后顺序执行


环绕切面类代码

环绕通知带参数的配置文件

带注解的 通知