Spring注解@Resource和@Autowired区别对比------dubbo分布式下的一些问题

最近在面试,问到了 多个子类在有spring IOC进行创建对象后,注入其父类的接口,是如何确定调用的是哪个子类的方法的问题。当时没理解到位,主要对@Autowired和@Resource的注入类型没有理解到位。

这里仔细研究了一下,参考了https://www.cnblogs.com/think-in-java/p/5474740.html 。这里已经对这两个概念很好的诠释了。我就不多说了。

我进行了上面的实验,突然发现有点问题,@Autowired和@Resource指定name的时候没有作用,百思不得其解。就在刚才突然想到我的这个项目是dubbo分布式的。这里已经跟 @Autowired和@Resource指定name 没有任何关系了。主要是由我服务提供方提供了哪个 服务给 注册中心,服务调用方再调用这个服务的时候是没有再去管 @Autowired和@Resource指定的name到底是哪个了,我只管你这个服务有没有在注册中心以及我注入的小名与你消费方提供的id是不是一致。

 

bean配置:

dubbo提供方配置

这里关联的是哪个,消费方消费的就是哪个

Spring注解@Resource和@Autowired区别对比------dubbo分布式下的一些问题_第1张图片

如果这里向注册中心发布了两个,在消费方最终只能得到一个服务(我这边测试的结果)这个服务是谁在前面得到的就是哪个

比如下面的:只能得到sessionProvider这个,不能得到sessionProvider2这个服务。

目前我这里没有找到解决办法,只能用不同的接口

Spring注解@Resource和@Autowired区别对比------dubbo分布式下的一些问题_第2张图片

 

 

你可能感兴趣的:(Spring注解@Resource和@Autowired区别对比------dubbo分布式下的一些问题)