一、spring+dubbo案例整合
项目github地址:https://github.com/liushangzaibeijing/dubbodemo.git
版本说明:
dubbo-spring-boot-starter 0.2.0
dubbo 2.6.2
二、入口分析
根据springBoot自动装配原理可以从对应的 dubbo-spring-boot-starter的duubo自动配置类: com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration
该类使用注解修饰
@Configuration
@ConditionalOnProperty(prefix = DUBBO_PREFIX, name = "enabled", matchIfMissing = true, havingValue = "true")
@ConditionalOnClass(AbstractConfig.class)
public class DubboAutoConfiguration {
@ConditionalOnProperty修饰
- prefix : 配置属性信息前缀
- name/value: 属性信息值集合形式
- havingValue: 配置属性信息符合该条件则进行自动装配
- matchIfMissing: 无prefix+name/value 配置的时候 如果为true 则也可进行自动装配
@ConditionalOnClass修饰
存在AbstractConfig 也可以实例化,该类是dubbo相关的maven依赖。
如上配置则DubboAutoConfiguration会被自动装配,接下来我们看看这个自动装配类添加了哪些bean实例
1、@EnableDubboConfig
Dubbo框架支持一个dubbo应用对应多个配置信息(比如多配置中心) 默认支持单配置 SingleDubboConfigConfiguration
如果有dubbo.config.mutilple=true则为会注册MultipleDubboConfigConfiguration 支持多注册中心主要应用场景:测试环境相关服务资源不匹配,生产环境平滑迁移。
这两个类主要是起到标识作用并没有实际作用(没有被bean实例化)主要是这两个类被注解@EnableDubboConfig修饰,该注解又引入了一个DubboConfigConfigurationSelector。