dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动

开始

是在之前的项目上

https://blog.csdn.net/ko0491/article/details/85168055

只更改Main类

dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第1张图片
在这里插入图片描述

之前的

现在的

dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第2张图片
在这里插入图片描述

public class Main3 {

    public static void main(String[] args) throws IOException {
        // com.alibaba.dubbo.container.Main.main(args);
        //
        // ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
        // new String[]{ "META-INF/spring/service-provider.xml" });
        /**
         * 使用spring文件
         */
        /*
         * ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[]{
         * "META-INF/spring/spring.xml" }); context.start();
         */
        com.alibaba.dubbo.container.Main.main(args);
        System.out.println("provider启动了");
    }

}

是不是很简单,有点小意外

com.alibaba.dubbo.container.Main.main方法介绍

在这里插入图片描述
    public static final String CONTAINER_KEY = "dubbo.container";

args传进来是空
config最终获取到的是spring


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第3张图片
在这里插入图片描述

args = spring

再向下


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第4张图片
在这里插入图片描述

将容器添加到list集合中,只有一个


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第5张图片
在这里插入图片描述

dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第6张图片
在这里插入图片描述

是spring容器
dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第7张图片
在这里插入图片描述

这个将会跳过,不匹配,关闭服务时


在这里插入图片描述

循环窗口集合,上面的只有一个
com.alibaba.dubbo.container.spring.SpringContainer

在start()方法


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第8张图片
在这里插入图片描述

com.alibaba.dubbo.container.spring.SpringContainer start()方法

dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第9张图片
在这里插入图片描述

介绍下几个常量

    public static final String SPRING_CONFIG = "dubbo.spring.config";
    public static final String DEFAULT_SPRING_CONFIG = "classpath*:META-INF/spring/*.xml";
    private static final Logger logger = LoggerFactory.getLogger(SpringContainer.class);
    static ClassPathXmlApplicationContext context;

获取配置,默认没有


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第10张图片
在这里插入图片描述
dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第11张图片
在这里插入图片描述

最终就是这个路径了

   public static final String DEFAULT_SPRING_CONFIG = "classpath*:META-INF/spring/*.xml";

写死了下面就是创建spring ApplicationContext过程与启动


dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第12张图片
在这里插入图片描述

我们的项目结构

配置文件刚好在META-INF/spring下,自动加载这个目录下的所有spring配置文件

dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动_第13张图片
在这里插入图片描述

spring.xml



    
    
    
    
    
    

service-provider.xml




    

    
    
    

    
    

    
    

    
    

github:https://github.com/ln0491/dubbo-demo

你可能感兴趣的:(dubbo 快速启动-结合spring注解使用com.alibaba.dubbo.container.Main启动)