一、URL
在说Dobbu之前我们先来讲一下URL,为什么要提URL呢?
一般而言我们说的 URL 指的就是统一资源定位符,在网络上一般指代地址,本质上看其实就是一串包含特殊格式的字符串,标准格式如下:
https://www.linzhuotech.com/Product/download?value=lz
而Dubbo就是采用URL的方式作为约定参数类型,也可以理解为Provider和Consumer沟通的枢纽。如果没有这个标准,那么不同的接口就会以不同的参数来传递信息,而且通过统一的契约之后,代码会显得更加的规范。
二、服务暴露过程
1、执行过程
第一步:检测Dubbo配置,如果配置为空则会默认创建,并组装成URL。
第二步:暴露服务,Provider将服务暴露给本地服务和远程的服务。
第三步:将Provider服务提交至注册中心。
2、对象创建过程
第一步:Dubbo将服务实现类转换成Invoker。
第二步:将Invoker转换成Exporter。
三、源码分析
1、在初始化过程中service定义
这里实现了ApplicationListener,所以就会在SpringIOC容器刷新完成后调用onApplicationEvent()方法,这个方法里面做的就是服务暴露,也是服