spring框架
**
AOP面向切面
**
开门见山,此篇博客将主要来讲讲这个spring框架的AOP

AOP(Aspect Oriented Programming)即面向切面编程的技术:AOP基于IOC基础,是对OOP的有益补充。

AOP面向切面
首先,我们需要知道以下几个概念:
1.Joinpoint连接点:
指被拦截的点,在spring中指的是方法,在类中的方法可以被增强,这些方法称之为连接点。(增强:加功能)
2.Pointcut切入点:
对Joinpoint进行拦截定义在类中有很多的方法是可以被增强的,实际增强的方法称之为切入点。
3.ice(增强/通知)
所谓的增强是指拦截到Joinpoint之后所做的事情就是通知
通知存在5种:
前置通知 | 方法之前执行 |
后置通知 | 方法之后执行 |
异常通知 | 方法出现异常执行 |
最终通知 | 后置通知之后执行 |
环绕通知 | 方法之前和方法之后 |
4.Aspect切面:
是切入点和通知的结合 将增强应用到切入点的过程

首先根据前面的那些概念基本能猜到,这个AOP是用来给我们的方法加功能的。
也就是我们先写好一个方法,然后在测试期间,我们不想对这个原有方法进行修改,那么用切面即可。
其实,用AOP采取横向的抽取机制,取代了传统的纵向继承体系写重复性代码
说到这里,基本对为什么用它有所了解。
那么它的实现原理是什么呢???
AOP是基于动态代理实现
1.第一种
有接口的情况下,动态代理:JDK动态代理
2.第二种
在没有接口的情况下,通过CGLib代理方式创建类的子类,通过子类调用父类的方法完成增强

上一篇 》
控制反转与依赖注入