Java 如何避免使用相同id的bean?
我有一个熟悉的问题 2个bean具有相同的id,但其包不同。 Bean A被Bean B覆盖。 我花了很多时间去寻找原因Java 如何避免使用相同id的bean?,java,spring,inject,Java,Spring,Inject,我有一个熟悉的问题 2个bean具有相同的id,但其包不同。 Bean A被Bean B覆盖。 我花了很多时间去寻找原因 所以我想阻止这个案子。我的请求是spring抛出一个异常,然后在遇到这样的情况时关闭初始化过程。您可以通过类型而不是id来@Inject(@Autowire)继续阅读。您可以通过类型来@Inject(@Autowire),不按id。请继续阅读。Spring不能在一个上下文中有两个id相同的bean。所以解决方案显而易见——使用不同的ID 如果使用的是xml上下文,则应为: &
所以我想阻止这个案子。我的请求是spring抛出一个异常,然后在遇到这样的情况时关闭初始化过程。您可以通过类型而不是id来
@Inject
(@Autowire
)继续阅读。您可以通过类型来@Inject
(@Autowire
),不按id。请继续阅读。Spring不能在一个上下文中有两个id相同的bean。所以解决方案显而易见——使用不同的ID
如果使用的是xml上下文,则应为:
<bean id="foo" class="what.ever.foo.Class" />
<bean id="bar" class="what.ever.package1.Class" />
基于注释的上下文使用不同的方法名称:
@Bean
public Foo foo() {
return new Foo();
}
@Bean
public Bar bar() {
return new Bar();
}
Spring不能在一个上下文中有两个id相同的bean。所以解决方案显而易见——使用不同的ID 如果使用的是xml上下文,则应为:
<bean id="foo" class="what.ever.foo.Class" />
<bean id="bar" class="what.ever.package1.Class" />
基于注释的上下文使用不同的方法名称:
@Bean
public Foo foo() {
return new Foo();
}
@Bean
public Bar bar() {
return new Bar();
}
乍一看,我把标题误读为“如何避免相同id的熊”。。。并且认为ID可能不相关:-)为什么不将包名与bean名一起使用?
@Qualifier
可能对您有所帮助..团队合作。两个家伙给他们的豆子一个相同的id,名字相同,但包装不同。然后去和这两个家伙谈谈,让他们中的至少一个改变他们豆子的名字。乍一看,我把标题误读为“如何避免相同id的熊”。。。并且认为ID可能不相关:-)为什么不将包名与bean名一起使用?@Qualifier
可能对您有所帮助..团队合作。两个家伙用相同的名字给他们的bean一个相同的id,但是包不同。然后去和这两个家伙谈谈,让他们中的至少一个改变他们bean的名字。