java - 如何避免 "two bean definitions found"错误

标签 java spring

我正在开发一个巨大的应用程序,其中包含数千个使用注解注册并使用@Autowired 相互连接的 Spring bean 该应用程序将作为“核心”应用程序发布,我们的客户应该能够自定义它,添加或覆盖 beans。 如果他们必须修改一个 bean,常规方法是扩展类并使 Spring 上下文注册自定义类而不是“核心”类,但是这样做 Spring 会抛出一个错误,因为它找到同一接口(interface)的两个实现。 我怎样才能做到这一点? 我们的客户如何才能“注销”核心类并注册自定义类?

非常感谢!

最佳答案

You can use a Qualifier. They identify beans by name, not by type.

您还可以将该字段设置为 bean 列表。

@Autowire
private Foobar[] customizedAndCore;

关于java - 如何避免 "two bean definitions found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886805/

相关文章:

java - Java 分布式系统中的线程

java - 服务器将序列化重写为 GET,将 hibernate 置于服务器上

java - 我的第一个 LWJGL 应用程序性能不佳

java - Spring - 无法执行 CommandLineRunner : @Bean

java.lang.ClassCastException : java. lang.String 无法转换为 [Ljava.lang.Object;当尝试通过 Hibernate 将列值获取到列表时

java - 升级到 Spring Boot 2.2.2.RELEASE + Thymeleaf 3.0.11.RELEASE,thymeleaf/layout 停止工作

java - 在 Java 桌面应用程序中播放视频

java - 使用 JFreeChart 在 Netbeans 中编译错误

java - REST 将 ManyToMany 发送回服务器

java - 控制 myBatis 日志目标文件和级别