Spring再回首二:AOP
Spring再回首二:AOP
silence88 发表于9个月前
Spring再回首二:AOP
  • 发表于 9个月前
  • 阅读 3
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 学生专属云服务套餐 10元起购>>>   

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操作。

标签: Spring
共有 人打赏支持
粉丝 7
博文 56
码字总数 70644
×
silence88
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: