AOP面向切面编程

一。为何要用AOP
为了代码的复用我们将相同的方法抽出出来,通过继承的方法实现。但是有时候,相同的方法却不能抽取出来。
这里写图片描述
图中粗体代码是用来监测性能的。比如创建删除需要多少时间。这时候虽然他们都有
transManaget.beginTransaction(); 等方法,但是这些方法和业务紧密连接在一起。无法抽取出来。
这里写图片描述

代码关系,如图所示,这就像一个树的切面。这也是切面概念的由来。
抽取,继承采用的是纵向的方式,复用代码。
AOP,采用横向的方法抽取。把共同的代码抽取出来,使用的时候再织入在一起。

AOP的基本概念:

  1. 连接点:切点+方位
  2. 切点 :执行点,目标类的方法
  3. 方位:切点的前面还是后面
  4. 增强:逻辑代码+方位
  5. 目标对象:需要增强的目标类
  6. 引介
  7. 织入:将增强添加到目标类的过程
  8. 代理:添加了增强后的目标类(代理类)
  9. 切面:切点+增强=连接点+增强逻辑代码
    连接点:方法前,方法后。这样的确定点。叫连接点。
    切点:只能定位到某一个方法上。Pointcut
    增强: 程序代码+方位。Advice
    (方位+切点=连接点)
    目标对象:目标类 target
    引介:一种特殊的增强,为类添加属性和方法 Introduction
    织入:1.编译器织入,需要特殊的JAVA编译器
    2. 类装载器织入,需要特殊的类装载器。
    3. 动态代理织入,为目标类添加增强生成子类。
    代理:目标类被织入增强了,就产生了一个结果类。
    切面:切面由切点和增强引入。

AOP的工作就是讲增强逻辑代码织入到目标对象的连接点上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值