说,我需要依靠Spring bean的几种实现。我有一个AccountService接口和许多实现:DefaultAccountServiceImpl,SpecializedAccountServiceImpl等(实际计数为40)。
在Spring Boot中这怎么可能(注入一个或另一个实现)?
以下注入将使用哪种实施方式?
答案 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;