首页 > 解决方案 > 名称不同但方法名称相同的Spring @Bean抛出Bean创建异常

问题描述

春天的新人。
我已经定义了 2 个 @Beans,每个 @Beans 具有唯一的名称,但具有相同的方法名称。没有创建 bean 之一并且没有抛出有效的 bean 异常。

@Bean("Example.A") 
public ClassA getNewBean() {
   return new ClassA();
}




@Bean("Example.B")
public ClassA getNewBean() {
  return new ClassA();
}

没有创建第二个 Bean,并且由于 ClassA 不存在有效的 bean 而引发异常。

这篇文章有两个不同类的bean,而在我的例子中,它们都在同一个@Configuration 中。

标签: javaspringspring-bootspring-mvcjavabeans

解决方案


当您通过bean name注入时,您可以使用@Resource

@Controller
public class MyController {
    @Resource(name = "Example.A")
    private ClassA obj;

    // ...
}

顺便说一句,bean 应该按照Java 标准约定命名。


推荐阅读