配置类【RibbonAutoConfiguration】的实例属性【configurations】是如何注入的?

1、【RibbonAutoConfiguration】类之所以成为配置类,是因为被【@Configuration】注解,而【@Configuration】本身又是被【@Component】注解的,所以该配置类最终会被实例化为一个配置向Bean。

2、其存在一个属性【configurations】,是一个List集合,类型为【RibbonClientSpecification】。在该配置类实例化时会被注入【BeanFactory】中所有【RibbonClientSpecification】类型的【BeanDefinition】,其实这些【BeanDefinition】都是一些配置了,用于定义各【RibbonClient】特有的配置,此外还有一些默认的【RibbonClient】配置。

3、调试过程中,通过负载均衡客户端【loadBalancerClient】调用Eureka客户端应用【user】时,发现属性【configurations】已经存在图中的三个配置项,第一个是为应用【user】特别指定的配置,后两个是默认的配置,并且第二个对应的配置类为空。

clip_image001

猜你喜欢

转载自www.cnblogs.com/StarkBrothers/p/12149781.html