【发布时间】:2019-04-17 06:43:42
【问题描述】:
所以我有 2 个实现相同接口的服务类:
@Service
public class ServiceOne implements InterfaceOne {
}
@Service
public class ServiceTwo implements InterfaceOne {
}
我想知道如何在控制器中注入特定实例?
@RestController
@RequestMapping("/test")
public class MyController {
@Inject
public MyController(InterfaceOne service) {
}
}
我不确定 DI 应该如何与服务类一起工作。基本上这两个服务类具有相同的接口,如果我可以将正确的接口注入控制器,我希望避免必要的情况。一个例子将不胜感激。
编辑:对不起,我不清楚。我还需要弄清楚的是,需要在控制器中注入哪个服务类而不指定具体的实现。所以,我希望有一种方法可以执行某种 if 语句并检查应该插入哪个服务实现。
【问题讨论】:
-
您好,在这种情况下,我认为您应该在您的服务上使用
@Qualifier。 -
你可以给他们起名字:stackoverflow.com/questions/48941960/…
-
我认为您要么按照 Mickael 的建议使用 @Qualifier,要么将
@Autowire特定服务而不是自动装配接口。 -
对不起,我一开始并不清楚。我已经更新了描述
标签: java spring-boot