处理接口的多种实现

时间:2019-04-09 12:05:26

标签: spring interface

说,我需要依靠Spring bean的几种实现。我有一个AccountService接口和许多实现:DefaultAccountServiceImpl,SpecializedAccountServiceImpl等(实际计数为40)。

在Spring Boot中这怎么可能(注入一个或另一个实现)?

以下注入将使用哪种实施方式?

2 个答案:

答案 0 :(得分:1)

根据本文https://www.logicbig.com/tutorials/spring-framework/spring-core/inject-bean-by-name.html,如果有多个实现,则将引发NoUniqueBeanDefinitionException。可以使用@Qualifier批注解决此问题,在该批注中应提供所需bean的名称。

答案 1 :(得分:0)

自动装配时,请使用@Qualifier annotation of Spring boot

示例:

@Autowired
@Qualifier("defaultAccountServiceImpl")
AccountService defaultAccountServer;

@Autowired
@Qualifier("specializedAccountServiceImpl")
AccountService specializedAccountServiceImpl;