当前位置: 首页 > 知识库问答 >
问题:

实现相同接口的spring应用程序中服务bean之间的优先级

宗意蕴
2023-03-14

我有一个@RestController具有自动装配的UserService接口,我有两个服务beanUserInMemoryServiceUserJpaService,它们都实现了UserService接口。

现在,UserInMemoryService正在使用内存存储库,而UserJpaService正在使用JPA存储库进行数据操作。问题是spring如何决定走哪条路?因为在controller中,我拥有的Autowired是一个接口,没有具体的类的细节。

共有1个答案

微生博简
2023-03-14

问题是Spring是如何决定走哪条路的?因为在控制器中,我hvae@Autow的是接口,没有具体类的细节。

Spring不会决定。它只会以一个异常结束,即“找到多个UserService类型的bean”

Spring无法自动连接,有多个``类型的bean

您可能需要使用限定符来告诉Spring使用哪个bean

 类似资料:
  • 我有两个spring bean类实现相同的接口。 你能给我一个建议吗。

  • 在我们的项目中,我们将spring与一起用于Junit测试。我们使用注释加载多个文件。我们有两个类和和extends。 在代码流过程中,我注意到在具有不同bean类型的多个文件中有相同的bean Id。当我测试这些JUnit并得到以下错误时。 错误: beAnnotoFRequiredTypeException:名为“选民ID”的Bean应该是[com.spring.test2.student]类

  • 我基本上是java初学者,我想问stackoverflow论坛一个简单的问题。我已经在这里检查了类似的问题,但我没有找到想要的答案,链接:实现接口的类和该接口之间有任何关系吗? 我们知道,如果猫延伸到动物身上,这是有关系的。所以猫是一种动物(但不一定非如此。动物也是一条狗……)。我们将这种关系称为“is-a”-继承。 如果我们有另外两个班:女孩和糖果,如果女孩班有糖果的例子,那么我们将这种关系命名

  • 我创建了一个bean,如下所示 在一个测试类中,我模拟该类如下: 应用程序在没有错误的情况下启动。但是测试并没有模仿bean CustomerEmailSenderImpl2。bean总是被实例化,并执行真正的代码。即使在测试类中从接口到类名的更改也没有帮助: 需要什么来模拟bean CustomerEmailSenderImpl2?

  • 我有一个实现两个接口的bean。准骨骼代码如下: 在AppConfig中,我指定了以下内容: 解决办法是引入一个扩展和的新接口,然后让实现它。但是,我不愿意因为框架的限制而改变我的设计。

  • 所以我的问题是: 总是设置优先级的setter注入,还是有某个属性定义它。 为什么Setter注入优先于构造函数注入