美文网首页
dubbo 生成 ApplicationConfig 等bean

dubbo 生成 ApplicationConfig 等bean

作者: 大强斌 | 来源:发表于2021-05-17 23:02 被阅读0次

    配置对象原理解析

           理论基础:

                   生成配置对象有如下几种方式

                     1  @Configuration Bean 方式  比 如

               2 xml方式 就不解释了

           第一种方式,硬编码的方式  2第二种方式  xml配置文件过多导致维护困难效率低下。

    springboot引入了一种思想,把属性文件中的对象自动提取属性 转化类型,生成对象注入到spring容器中。是不是又省事,又智能,举个例子 比如:dubbo.application.name=foo等价于<dubbo:application name="foo" />,

    那是怎样做到的呢?如果让你做。你应该怎做呢?

     1 即使自动化,我映射到bean的哪个类型呢?总有对应的类型吧。总不能胡乱映射吧。

    2我映射到了对应的类型,我值怎转化的?怎转成成对应的类型的?总有这个功能吧。这就是spring提供的 动态生成bean,和数值动态绑定功能。

    下面我们看一下具体是如何搞的

    步骤说明:

    1.参数attributes就是@EnableDubboConfigBinding里面的属性,获取prefix属性值,就是获取到了:dubbo.application

    例:

    @EnableDubboConfigBinding(prefix = "dubbo.application", type = ApplicationConfig.class)

    2.获取dubbo的配置类的class,也就是获取到了ApplicationConfig.class

    3.获取multiple的值,默认没有配置就是false

    4.调用registerDubboConfigBeans方法生成dubbo的配置bean

    @Service @Reference 注解实现的原理,

    @Service 目标是定义一个dubbo bean ,需要注册到spring容器中,主要实现bean的动态定义和注入,

    实现步骤,

     1扫描定义包路径,包含@Service的所有类,然后生成spring的beandefinition定义,

    2  注册到spring容器中,并动态绑定数据。

    @Reference 目的是 注入到其他已经生成的bean中,核心原理就在springbean 注入属性前,通过调用自定义属性。查找Referernce 注解标识的相关的字段,并设置属性。

    相关文章

      网友评论

          本文标题:dubbo 生成 ApplicationConfig 等bean

          本文链接:https://www.haomeiwen.com/subject/fdjsjltx.html