dubbo源码分析10——服务暴露1_export()方法分析
2017-10-16 10:28
519 查看
ServiceConfig类中的export()方法,是dubbo服务暴露的入口方法,被触发的时机有两个:
1. spring容器初始化完成所有的bean实例后,通过事件机制触发
2. 实现InitializingBean的方法中进行触发
export()方法源码如下:
通过查看源码可知,export方法处理了如何延时暴露,然后调用doExport()方法进行暴露
1. spring容器初始化完成所有的bean实例后,通过事件机制触发
2. 实现InitializingBean的方法中进行触发
export()方法源码如下:
public synchronized void export() { if (provider != null) { if (export == null) { export = provider.getExport(); } if (delay == null) { delay = provider.getDelay(); } } if (export != null && ! export.booleanValue()) { return; } if (delay != null && delay > 0) { //如果要进行延迟暴露,则开启一个子线程,在子线程中进行服务暴露的工作 Thread thread = new Thread(new Runnable() { public void run() { try { Thread.sleep(delay); } catch (Throwable e) { } doExport(); } }); thread.setDaemon(true); //由于是后台线程,则如果当前只有后台线程存在的情况下,JAVA虚拟机将退出,这样当主线程结束,以及主线程的其他user线程都结束的情况下,daemon线程也将结束 thread.setName("DelayExportServiceThread"); thread.start(); } else { doExport(); } }
通过查看源码可知,export方法处理了如何延时暴露,然后调用doExport()方法进行暴露
相关文章推荐
- dubbo源码分析12——服务暴露3_doExportUrls()方法分析
- dubbo源码分析11——服务暴露2_doExport()方法分析
- Dubbo源码分析----暴露服务
- Dubbo源码分析之服务暴露
- [置顶] Dubbo暴露服务和引用服务的实现源码分析
- dubbo服务暴露过程源码分析
- 6、dubbo源码分析 之 服务暴露概述
- dubbo源码分析(一) 服务暴露--服务引用
- Dubbo源码分析之三:服务的暴露
- 7、dubbo源码分析 之 服务本地暴露
- Dubbo暴露服务和引用服务的实现源码分析
- dubbo源码分析8——服务暴露概述
- 8、dubbo源码分析 之 服务远程暴露(上)
- dubbo 服务调用源码分析
- dubbo源码分析二:服务发布
- Dubbo 介绍 2- 源码分析,通过 schema 启动服务
- 深入理解dubbo之服务发布源码分析
- Dubbo介绍2- 源码分析,通过schema启动服务
- dubbo源码学习(五)dubbo暴露服务的过程
- dubbo源码分析二:服务发布