首页 > 代码库 > Motan的SPI机制实现分析
Motan的SPI机制实现分析
Motan使用SPI机制来实现模块间的访问,基于接口和name来获取实现类,降低了模块间的耦合。
首先来看一下使用方式:
有两个注解
@Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface Spi { Scope scope() default Scope.PROTOTYPE; } @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface SpiMeta { String name() default ""; }
@Spi用来注解接口,@SpiMeta用来注解接口的实现类
@Spi(scope = Scope.SINGLETON) public interface ConfigHandler { ......
@SpiMeta(name = MotanConstants.DEFAULT_VALUE) public class SimpleConfigHandler implements ConfigHandler { ......
Motan Spi机制遵循JDK的spi机制,在META-INF/services/下面配置实现类的描述。
文件:META-INF/services/com.weibo.api.motan.config.handler.ConfigHandler
com.weibo.api.motan.config.handler.SimpleConfigHandler
具体的使用方式是:
ConfigHandler configHandler = ExtensionLoader.getExtensionLoader(ConfigHandler.class).getExtension(MotanConstants.DEFAULT_VALUE);
public enum Scope { /** * 单例模式 */ SINGLETON, /** * 多例模式 */ PROTOTYPE }
Motan的SPI机制实现分析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。