Spring AOP
Spring AOP
**一.概述:**在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
二.AOP底层实现:
JDK动态代理(使用接口的业务类)
使用CGLIB生成代理
三.AOP增强类型:按照通知Advice在目标类方法的连接点位置,分成5类
- 前置通知,在目标方法执行前实施增强
- 后置通知,在目标方法执行后实施增强
- 环绕通知,在目标方法执行前后实施增强
- 异常通知,在方法抛出异常后实施增强
- 引介通知,在目标类中添加一些新的方法和属性
四.AOP前面类型:
- Advisor:代表一般切面,Advice本身就是一个切面,对目标类所有方法进行拦截
- PointcutAdvisor:代表具有切点的切面,可以指定拦截目标类哪些方法
- IntroductionAdvisor:代表引介切面,针对引介通知而使用切面(不要求掌握)