Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何避免使用相同id的bean?_Java_Spring_Inject - Fatal编程技术网

Java 如何避免使用相同id的bean?

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上下文,则应为: &

我有一个熟悉的问题

2个bean具有相同的id,但其包不同。 Bean A被Bean B覆盖。 我花了很多时间去寻找原因


所以我想阻止这个案子。我的请求是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的名字。