Dubbo-服务暴露

前言

在开发中,我们定义了接口、实现类,然后在配置文件(XML)中用 <dubbo:service >标签就可以把这个接口暴露出去,本文就介绍一下 Dubbo 的服务暴露过程。

服务暴露流程

先看下官方文档中给出的实体转化图,一个服务暴露必须经过的是从提供服务的实际类 ref -> Invoker -> exporter。大致流程如下:
服务暴露实体转化

解析配置文件,发起服务暴露

解析配置文件的自定义标签<dubbo:service > ,在 ServiceBean 初始化的时候会触发 Bean 初始化事件,开始进行服务暴露;

<dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" />

ProxyFactory 动态代理实现类,返回代理对象 invoker

// ServiceConfig ProxyFactory创建代理类,获取invoker
Invoker<?> invoker = proxyFactory.getInvoker() 
  
// JavassistProxyFactory.getInvoker() 动态代理创建代理类
public <T> Invoker<T> getInvoker(T proxy, Class<T> type, URL url) {
   
  final Wrapper wrapper = Wrapper.getWrapper(proxy.getClass().getName().indexOf('$') < 0 ? proxy.getClass() : type);
  return new AbstractProxyInvoker<T>(proxy, type, url) {
   
    protected Object doInvoke(T proxy, String methodName,
                              Class<?>[] parameterTypes,<
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值