dubbo源码分析8——服务暴露概述
2024-09-30 08:40:35
从上文中可知,com.alibaba.dubbo.config.spring.ServiceBean类是负责解析<dubbo:service/>的配置的,下面是它的类图
从类图上可知它继承了ServiceConfig类,并实现了5个接口,在这5个接口中有两个接口与服务暴露有关InitializingBean接口和ApplicationListener接口,其中InitializingBean是进行bean的初始化工作的,ApplicationListener接口是监听spring容器事件的。先通过outline视图观察一下ServiceBean类:
从outline视图中可以发现,ServiceBean类并没做什么保存配置的工作,保存配置的工作主要是由它的父类在承担。结合源码可以看到ServiceBean类的真正作用是两个:
1. 对服务Bean的实例进行初始化,详见afterPropertiesSet()方法
2. 暴露服务,详见onApplicationEvent(ApplicationEvent event)方法,这个方法的触发时机是在spring的IOC容器完成所有的bean的实例化和初始化工作之后,会发出一个ContextRefreshedEvent类型的事件,如果我们关心该类型事件则实现ApplicationListener接口就可以,IOC容器就会在恰当的时机去调用我们实现的ApplicationListener接口中的代码逻辑, 而dubbo就是利用这个机制和时机完成了每个服务接口的暴露工作。
下文将对ServiceBean的源码进行详细分析。
最新文章
- Java发送邮件代码
- ACM/ICPC 之 DFS范例(ZOJ2412-ZOJ1008)
- 能源项目xml文件 -- springMVC-servlet.xml -- default-lazy-init
- 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题
- javascript给不能修改的函数增加额外处理的方法
- 初学Android 一 基本开发环境
- MCS-51系列和80C51系列单片机是否相同
- UIImage加载图片的区别和渲染模式
- Sql示例说明如何分组后求中间值--【叶子】
- Ubuntu 16.04 Django安装和配置
- WPF中TextBox的PreviewMouseLeftButtonUp事件
- git 分支管理记录
- 「JLOI2015」骗我呢 解题报告?
- uniGUI HyperServer
- JS----事件3
- poj2709
- Java与编码问题串讲之二–如何理解java采用Unicode编码
- SimpleSocket
- 【Azure】Publish Error of ";%(TargetOSFamily.Identity)"; that evaluates to ";"; instead of a number
- Oauth2.0 整合springCloud的Zuul 解决关键BUG 报错信息:Principal must not be null
热门文章
- JavaSE_坚持读源码_ClassLoader对象_Java1.7
- CentOS 安装最新版本 Git
- Windows 运行库
- Sqlserver中的视图
- ruby读取exce文件,使用roo---Gem
- Sidetiq 定时任务
- JavaScript 从入门到放弃(二)模块化工具requirejs
- zookeeper的作用
- string赋值和操作
- ads出现村田电容电感无法仿真的问题解决(`BJT1&#39; is an instance of an undefined model `BJTM1&#39;)