从上文中可知,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的源码进行详细分析。

最新文章

  1. Java发送邮件代码
  2. ACM/ICPC 之 DFS范例(ZOJ2412-ZOJ1008)
  3. 能源项目xml文件 -- springMVC-servlet.xml -- default-lazy-init
  4. 微信JSSDK多图片上传并且解决IOS系统上传一直加载的问题
  5. javascript给不能修改的函数增加额外处理的方法
  6. 初学Android 一 基本开发环境
  7. MCS-51系列和80C51系列单片机是否相同
  8. UIImage加载图片的区别和渲染模式
  9. Sql示例说明如何分组后求中间值--【叶子】
  10. Ubuntu 16.04 Django安装和配置
  11. WPF中TextBox的PreviewMouseLeftButtonUp事件
  12. git 分支管理记录
  13. 「JLOI2015」骗我呢 解题报告?
  14. uniGUI HyperServer
  15. JS----事件3
  16. poj2709
  17. Java与编码问题串讲之二–如何理解java采用Unicode编码
  18. SimpleSocket
  19. 【Azure】Publish Error of &quot;%(TargetOSFamily.Identity)&quot; that evaluates to &quot;&quot; instead of a number
  20. Oauth2.0 整合springCloud的Zuul 解决关键BUG 报错信息:Principal must not be null

热门文章

  1. JavaSE_坚持读源码_ClassLoader对象_Java1.7
  2. CentOS 安装最新版本 Git
  3. Windows 运行库
  4. Sqlserver中的视图
  5. ruby读取exce文件,使用roo---Gem
  6. Sidetiq 定时任务
  7. JavaScript 从入门到放弃(二)模块化工具requirejs
  8. zookeeper的作用
  9. string赋值和操作
  10. ads出现村田电容电感无法仿真的问题解决(`BJT1&#39; is an instance of an undefined model `BJTM1&#39;)