【发布时间】:2013-11-07 16:46:30
【问题描述】:
在 CDI 中,我可以这样做:
// Qualifier annotation
@Qualifier
@inteface Specific{}
interface A {}
class DefaultImpl implements A {}
@Specific
class SpecificImpl implements A {}
然后在课堂上:
@Inject
A default;
@Inject
@Specific
A specific;
之所以有效,是因为 @Default 限定符自动分配给未指定任何限定符的注入点。
但我正在使用 Spring 并且无法执行该操作。
Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException
问题是“默认”注入(没有限定符)已经在很多我无法更改的代码中使用,我需要为我的用户提供另一个可能的A 实现。
我知道我可以通过 bean 名称注入我的新实现,但我想避免它。
Spring 中有什么可以帮助我实现它的吗?
【问题讨论】:
标签: java spring dependency-injection