[size=medium][color=red][b]简易的暴露流程[/b][/color][/size]
1.首先将服务的实现封装成一个Invoker,Invoker中封装了服务的实现类。
2.将Invoker封装成Exporter,并缓存起来,缓存里使用Invoker的url作为key。
3.服务端Server启动,监听端口。(请求来到时,根据请求信息生成key,到缓存查找Exporter,就找到了Invoker,就可以完成调用。)
[size=medium][color=red][b]Spring容器初始化调用[/b][/color][/size]
当Spring容器实例化bean完成,[color=red][b]走到最后一步发布ContextRefreshEvent[/b][/color]事件的时候,[b]ServiceBean会执行onApplicationEvent方法[/b],该方法调用ServiceConfig的export方法。
ServiceConfig初始化的时候,会先初始化静态变量protocol和proxyFactory,这两个变量初始化的结果是通过dubbo的spi扩展机制得到的。
链接:[url]https://blog.csdn.net/dachengxi/article/details/62567065[/url]
1.首先将服务的实现封装成一个Invoker,Invoker中封装了服务的实现类。
2.将Invoker封装成Exporter,并缓存起来,缓存里使用Invoker的url作为key。
3.服务端Server启动,监听端口。(请求来到时,根据请求信息生成key,到缓存查找Exporter,就找到了Invoker,就可以完成调用。)
[size=medium][color=red][b]Spring容器初始化调用[/b][/color][/size]
当Spring容器实例化bean完成,[color=red][b]走到最后一步发布ContextRefreshEvent[/b][/color]事件的时候,[b]ServiceBean会执行onApplicationEvent方法[/b],该方法调用ServiceConfig的export方法。
ServiceConfig初始化的时候,会先初始化静态变量protocol和proxyFactory,这两个变量初始化的结果是通过dubbo的spi扩展机制得到的。
链接:[url]https://blog.csdn.net/dachengxi/article/details/62567065[/url]