我定义了以下类:
public interface Thingy { ... }
public class Foo implements Thingy { ... }
public class Bar implements Thingy { ... }
类Foo
和Bar
都被实例化为具有相同名称的单例bean,如
<bean id="foo" class="Foo" />
<bean id="bar" class="Bar" />
问题发生在然后尝试使用与bean相同的名称自动装配字段,例如
@Autowired
Thingy foo;
此处,字段与Foo
实例一起自动装配,我不希望这样。如果字段名称与bean名称不匹配,则自动装配falis并且需要。
那么,有没有办法禁用这种后备,所以在上述情况下自动装配会失败?
答案 0 :(得分:2)
我不认为这是可能的,反之亦然,使用setFallbackToDefaultTypeMatch
:
javadoc: CommonAnnotationBeanPostProcessor
为什么不重命名你的bean或你的班级?
答案 1 :(得分:0)
我有几个建议可以帮助你,虽然我不确定你的要求是什么。
答案 2 :(得分:0)
你可以使用@Qualifier(“beanname”)来确保你用正确的bean注入它