读懂Dubbo源码必备知识点之二
来源:互联网 发布:asp.net加权轮询算法 编辑:程序博客网 时间:2024/05/29 06:40
Dubbo中在很多地方都用到了java SPI(Service Provider Interface)技术,如容器选择、协议适配等(阿里对这项技术扩展了一些自己的功能,后面读代码时会讲到)。 所谓SPI就是一个简单的服务提供加载工具,即:java.util.ServiceLoader,主要用法可以简单的表述为,通常定义一个简单的服务接口,但是实现这个服务的接口实现类有很多种,ServiceLoader能够自动加载实现类,通过读ServiceLoader的源码,我们能够发现ServiceLoader 会主动加载放在资源目录META-INF/services下的以接口全路径命名文件中所记载的实现类如何使用参考下面简单例子:
服务接口类
public interface LogPrintln { public String printLn();}服务接口实现类public class LogPrintlnLog4j implements LogPrintln { public String printLn() { return "Log4j"; }}文件路径:META-INF/services/blog.csdn.net.spi.LogPrintLn
内容:blog.csdn.net.spi.LogPrintlnLog4j
测试结果:
public class TestMain { public static void main(String[] args) { ServiceLoader<LogPrintln> serviceLoader = ServiceLoader .load(LogPrintln.class); for (LogPrintln service : serviceLoader) { System.out.println(service.printLn()); } }}
输出结果:Log4j
阅读全文
0 0
- 读懂Dubbo源码必备知识点之二
- 读懂Dubbo源码必备知识点之三
- 读懂Dubbo源码必备知识点之一
- Dubbo源码学习之知识点分析
- NStimer使用要点之必备知识点二
- Dubbo源码学习之知识点分析(续)
- 读懂tomact源码二:Connector
- Dubbo源码分析之二:spring集成之注解
- 带你阅读dubbo源码之自定义标签(二)
- dubbo源码深度解读二之config模块
- dubbo源码之Container
- Dubbo源码分析(二):Dubbo之消费端(Consumer)
- Dubbo源码分析(二):Dubbo之消费端(Consumer)
- Dubbo源码分析(二):Dubbo之消费端(Consumer)
- dubbo源码 学习笔记(二)
- dubbo源码之框架架构
- dubbo源码之SPI注解
- dubbo源码之Adaptive注解
- Kafka、RabbitMQ、RocketMQ等消息中间件的对比 —— 消息发送性能和优势
- leetcode 43. Multiply Strings
- 理解AutoResizing背后的逻辑
- java的递归操作(用十进制转二进制作为例子)
- Android 学习第一天(环境搭建,国际化)
- 读懂Dubbo源码必备知识点之二
- Using the container
- (个人)AR电子书创新系统实训第四周(2)
- Go:去除程序启动时的控制台窗口
- 常用MQ原理、使用场景和IBM WebSphere MQ介绍
- IOS swift3.1 创建Swift空工程(无storyBoard)纯代码方式编写APP
- Python 系统总结与快速入门(1)
- 基于maven使用IDEA创建多模块项目
- eclipse之jrebel热部署插件