java – 在Spring中是否有相当于CDI的@Default限定符?
发布时间:2020-12-15 00:25:33 所属栏目:Java 来源:网络整理
导读:在CDI中,我可以这样做: // Qualifier annotation@Qualifier@inteface Specific{}interface A {}class DefaultImpl implements A {}@Specificclass SpecificImpl implements A {} 然后在课堂上: @InjectA default;@Inject@SpecificA specific; 它的工作原理
在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中有什么可以帮助我实现它吗? 解决方法
有人指着我@Primary正是这样做的.我尝试过它完美无缺:
@Primary class DefaultImpl implements A {} 在我的情况下,DefaultImpl在xml中: <bean id="defaultImpl" class="DefaultImpl" primary="true"/> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |