duboo源码分析3-service bean的创建与发布

和reference的实现思路略有不同
1. 在spring对接这一层略有区别
ServiceBean不再是一个bean factory,而是ApplicationListener的实现
2. service在配置时,是引用spring现有的bean id
也就是说业务service的实例的构建过程是由spring完成的
dubbo只需要将这个service的实例发布(export)到远程调用的端口上
在reference进行远程调用时能找到这个实例

发布关键点与难点在于基于netty的开发,后面单写一篇

时间: 2024-10-10 17:50:58

duboo源码分析3-service bean的创建与发布的相关文章

【Spring源码分析】原型Bean实例化过程、byName与byType及FactoryBean获取Bean源码实现

原型Bean加载过程 之前的文章,分析了非懒加载的单例Bean整个加载过程,除了非懒加载的单例Bean之外,Spring中还有一种Bean就是原型(Prototype)的Bean,看一下定义方式: 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi=&qu

Docker源码分析(二):Docker Client创建与命令执行

1. 前言 如今,Docker作为业界领先的轻量级虚拟化容器管理引擎,给全球开发者提供了一种新颖.便捷的软件集成测试与部署之道.在团队开发软件时,Docker可以提供可复用的运行环境.灵活的资源配置.便捷的集成测试方法以及一键式的部署方式.可以说,Docker的优势在简化持续集成.运维部署方面体现得淋漓尽致,它完全让开发者从持续集成.运维部署方面中解放出来,把精力真正地倾注在开发上. 然而,把Docker的功能发挥到极致,并非一件易事.在深刻理解Docker架构的情况下,熟练掌握Docker C

duboo源码分析1-reference bean创建

值得学习的地方:在reference这一侧是如何做到了对应用透明? 分析代码后不难发现:使用javassist的字节码技术+代理. 这种实现框架对应用透明的手段,在struts2的action上也有类似手段,actionproxy加反射,struts2的action也是一个普通的bean类就可以充当contorller了. 图比较大,看不到全部的,可以在图片上直接点击

SaltStack源码分析之service状态模块

/usr/lib/python2.6/site-packages/salt/states/service.py 这个模块用于启动或重启服务和后台进程 starting or restarting of services and daemons ============================================== Services are defined as system daemons typically started with system init or rc s

【Spring源码分析系列】bean的加载

前言 以 BeanFactory bf  = new XmlBeanFactory(new ClassPathResource("beans.xml"));为例查看bean的加载过程. 一.首先来看Spring中是如何实现的 1 @Override 2 public Object getBean(String name) throws BeansException { 3 return getBean(name, Object.class); 4 } 5 6 @Override 7 p

duboo源码分析4-基于netty的dubbo协议的server

真正的netty server并没有太多的技术含量.主要还是依赖handler的细节处理.

mybatis源码分析(1)-----sqlSessionFactory创建

1. 首先了解一下mybatis,包含核心jar ,以及spring相关jar. <!-- Mybatis相关组件 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <

mybatis源码分析(2)-----SqlSession创建

1. 在创建好sqlSessionFactory之后,接着就要配置sqlSession的创建. <bean id="simpleTempalte" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg index="0" ref="sqlSessionFactory" /> <constructor-arg index=&q

源码分析:Java堆的创建

虚拟机在内存中申请一片区域,由虚拟机自动管理,用来满足应用程序对象分配的空间需求,即堆空间. 由于程序运行的局部特性,程序创建的大多数对象都具有非常短的生命周期,而程序也会创建一些生命周期特别长的对象.简单的复制收集器无论对象的 生命周期是长是短,都会进行复制操作.而生命周期较长的对象在多次垃圾回收期间内并不会被回收,这就使得这些对象被来回复制而使得算法性能大大下降. 分代收集把堆分为多个子堆,分别用来存放不同寿命的对象.新生对象空间的将经历最频繁的垃圾回收,而对于经历了若干次垃圾收集后仍然存活