dubbo源码解析(dubbo容器部分)

Dubbo代码解析

 

   Dubbo中也有内置的容器接口就是类:

com.alibaba.dubbo.container.Container代码如下所示

    @SPI("spring")

public interface Container {

    

    /**

     * start.

     */

    void start();

    

    /**

     * stop.

     */

    void stop();

 

}

也同样是spi扩展点。而且接口非常的简单,干净,在dubbo框架中一共出现了下面几种container实现:

com.alibaba.dubbo.container.spring.SpringContainer

com.alibaba.dubbo.container.jetty.JettyContainer

com.alibaba.dubbo.container.log4j.Log4jContainer

com.alibaba.dubbo.container.logback.LogbackContainer

其中SpringContainerdubbo服务发步成单独的服务节点的时候就是作为启动spring的容器。整个dubbo是基于spring的。在看dubbo启动类中的启动容器代码:

 

for (Container container : containers) {

                container.start();

                logger.info("Dubbo " + container.getClass().getSimpleName() + " started!");

            }

上面的代码就是dubbo启动配置激活的所有dubbo容器的。

其中就包括spring容器。

下面就重点分析下SpringContainer

Springcontainer是实现了com.alibaba.dubbo.container.Container的类。其中对start()

部分的实现代码如下:

 

 

 

 

 

 

 

 

public void start() {

        String configPath = ConfigUtils.getProperty(SPRING_CONFIG);

        if (configPath == null || configPath.length() == 0) {

            configPath = DEFAULT_SPRING_CONFIG;

        }

        context = new ClassPathXmlApplicationContext(configPath.split("[,\\s]+"));

        context.start();

    }

首先取得spring配置文件目录通过环境属性,dubbo.spring.config(所有dubbo的可配置属性都是dubbo开头的,而且大部分都提供了默认值,保持可灵活可配置的同时又体现了易用性)。紧接着dubbo就开始干最核心的事情了借助spring来启动整个dubbo服务。有时间在看看怎么启动spring

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值