Dubbo的源码解析

一、SPI机制:

  1、首先创建ExtensionLoader

  2、然会根据ExtensionLoader获取和搜索类的实例

    (1)类上有@Adaptive注解的,直接创建该类的实例

    (2)方法上有@Adaptive注解的,直接创建该类的代理类,有相应的代理模板

        根据代理类的实现获取真正的实现类

ExtensionLoader.getExtensionLoader(Container.class)

1、ExtensionLoader.getExtensionLoader(ExtensionFactory.class).getAdaptiveExtension()获取适应能强的实力(两种方式)

2、ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(name)获取指定的实例

3、@SPI获取默认的实例

AdaptiveExtensionFactory【SpiExtensionFactory,SpringExtensionFactory】依据容器进行依赖注入

Wrapper的dubbo的AOP机制

IOC+AOP+DI

单例模式、工程模式、动态代理模式、装饰器模式

dubbo的动态生成代码机制

ServiceBean发布服务

猜你喜欢

转载自www.cnblogs.com/erdanyang/p/12969888.html