假设我需要依赖 Spring bean 的 几个实现。我有一个 AccountService
接口(interface)和两个实现:DefaultAccountServiceImpl
和 SpecializedAccountServiceImpl
。
在 Spring 中这怎么可能(注入(inject)一个或另一个实现)?
以下注入(inject)将使用哪种实现方式?
@Autowired private AccountService accountService;
最佳答案
广告。 1:可以使用@Qualifier
annotation或使用 @Resource
Autowiring ,而不是 @Autowired
默认为字段名称而不是类型。
广告。 2:它会在运行时失败,说两个 bean 正在实现这个接口(interface)。如果您的 bean 之一另外是 annotated with @Primary
,在按类型 Autowiring 时将是首选。
关于java - 处理一个 Spring bean/接口(interface)的多个实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777079/