Spring AOP

AOP(Aspect Oriented Programming) 面向切面编程

举个例子 通常需要处理一段业务逻辑的前后有打印日志或其他操作 业务逻辑代码里就会穿插大量日志打印等代码显得十分杂乱

这个时候就可以使用AOP将日志操作抽象为一个横切关注点 将他织入相应业务逻辑接口中就可以了

 

AOP核心概念

1、横切关注点

对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点

2、切面(aspect)

类是对物体特征的抽象,切面就是对横切关注点的抽象

3、连接点(joinpoint)

被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器

4、切入点(pointcut)

对连接点进行拦截的定义

5、通知(advice)

所谓通知指的就是指拦截到连接点之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知五类

6、目标对象

代理的目标对象

7、织入(weave)

将切面应用到目标对象并导致代理对象创建的过程

8、引入(introduction)

在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段

 

在我看来AOP的好处有如下几点

1、代码中不在穿插log.info等类似代码,增强了代码的可复用率

2、可以使用xml或注解来配置切面和连接点 而不用改动代码 可插拔性强

 

posted @ 2016-12-15 15:36  chrischris  阅读(97)  评论(0)    收藏  举报