Dubbo内核解析-SPi(二)

前言

    本篇是spi的第二篇,紧接上一篇Dubbo内核解析-Spi,主要讲解spi中新增的AOP。首先也是先从Spring的AOP出发。

    Spring的AOP理解

 

Spring的AOP增强方式一共有5种,分别为

增强类型应用场景
前置增强权限控制、记录调用日志
后置增强统计分析结果数据
异常增强通过日志记录方法异常信息
最终增强释放资源
环绕增强缓存、性能、权限、事务管理

通过以下方式理解记忆:try-catch-finally 这样的模式进行理解


//环绕
try {
    //前置
    System.out.println("=====");
    //后置
}catch (Exception e){
    //异常
}finally {
    //最终
}

        SPi的AOP

栗子:

假如接口A还有另外一个实现者:Wrapper:

class Wrapper implements A{
    private A a;
    AWrapper1(A a){
      this.a = a;
    }
    
}

Wrapper相当于A的包装类,类似于AOP的功能,Wrappe增加了A的功能。当我们获取接口A的实现类的时候,得到的就是包装过的类。
 

通过 Wrapper 类可以把所有扩展点公共逻辑移至 Wrapper 中。新加的 Wrapper 在所有的扩展点上添加了逻辑,有些类似 AOP,即 Wrapper 代理了扩展点。

给接口注入拓展点是一个Adaptive实例,知道方法执行时,才决定是哪一个拓展点的实现,

dubbo相对jdk有哪些改变:

①通过使用缓存提高性能。

②增加了通过key形式获取拓展点。

③增加了@SPI注解的默认值。

④增加了Ioc和Aop功能。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值