如何在从FirstRepository ControllerA调用服务(MyService)时使用,在调用来自ControllerB时使用MyService
通过这种方式,我可以重用MyService,使用哪个存储库来自Spring配置。
发布于 2020-03-09 14:44:20
我在这里可以看到两种可能的解决方案。1.在您的MyService类中,这两个实现都带有@Qualifier注释(您也可以使用自动列表)。然后,MyService方法将有一个参数,说明应该调用哪个MyRepository实现。我不建议这个解决办法。2.定义MyService的两个实现(FirstService,SecondService)。然后FirstService将自动更新FirstRepository,SecondService将自动更新SecondRepository (使用@Qualifier annotation again )。现在,您可以轻松地将FirstService注入ControllerA,将SecondService注入ControllerB。
但首先我会想到建筑。也许你不需要单独的控制器?
发布于 2020-03-09 14:55:08
最后,我创建了两个控制器,并定义了两个@Configuration类,每个@Controller都有一个。
并且使用@Qualifier注释定义了两组bean,然后在每个控制器中让Spring知道我想要注入哪个@Qualified bean。
@RestController
@RequestMapping("/v1/inapp/purchases")
class AController(
@Qualifier("appStore") private val redeemPurchaseService: RedeemPurchaseService
) : RedeemPurchaseApiDocumentation { // More code }和另一个控制器
@RestController
@RequestMapping("/v1/inapp/purchases")
class GPlayRedeemPurchaseController(
@Qualifier("gplay") private val redeemPurchaseService: RedeemPurchaseService
) : RedeemPurchaseApiDocumentation { // More code }和两个@Configuration文件,每个控制器一个。
https://stackoverflow.com/questions/60602480
复制相似问题