Spring再回首二:AOP

原创
2017/02/16 18:47
阅读数 28

AOP概念

  1. AOP:面向切面(方面)编程,扩展功能不修改源代码实现
  2. AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码,达到了高内聚低耦合的特性。
  3. AOP底层使用动态代理实现
    • 第一种情况,有接口情况,使用动态代理创建接口实现类代理对象
    • 第二种情况,没有接口情况,使用动态代理创建类的子类代理对象

AOP的理解

1、纵向抽取机制增强一个方法:

2、横向抽取机制增强一个方法:

---

AOP操作术语

  1. 连接点(Joinpoint):所谓链接点就是指哪些被拦截的点。在spring中,这些点指的是方法。(通俗理解:类里面可以增强的方法,这些方法并成为连接点)
  2. 切入点(pointcut):实际增强的方法,则为切入点。
  3. 通知/增强(Advice):增强的逻辑,成为增强,例如需要增加记录日志的操作,则记录日志的逻辑则称为增强。增强类型分为:前置通知、后置通知、异常通知、最终通知、环绕通知(在方法之前和之后执行)
  4. 切面(Aspect):把增强应用到具体方法上面,这个过程则成为切面。(把增强应用到切入点的过程)

Spring的AOP操作

1、在spring里面进行aop操作,使用的是aspectj实现(acpectj可以理解为是另一种框架)

2、使用aspectj实现aop有两种方式:xml、注解(不常用)。

  • 操作准备

  1. 除了导入基本的jar包之外,还需要导入aop相关的jar包

    2. 创建spring核心配置文件,导入aop的约束

    3. 使用表达式配置切入点

 execution(<访问修饰符>?<返回类型><方法名>(<参数>)<异常>)

(1)execution(* cn.itcast.aop.Book.add(..))

(2)execution(* cn.itcast.aop.Book.*(..))

(3)execution(* *.*(..))

(4) 匹配所有save开头的方法 execution(* save*(..))

   4、配置

解释:Book类的方法需要增强,因此这里配置切入点pointcut1,就是代表Book类的方法,myBook配置的是切面,即里面要体现使用哪个类的方法的哪个方法增强哪个切入点,这里既是用MyBook的before1方法增强pointcut1这个切面。

 基于aspectj的注解aop操作

1、在spring核心配置文件中,开启aop操作

2、在增强类上面使用注解完成aop操作。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部