gpt4 book ai didi

spring-boot - 从 2.0.6 升级到 Spring Boot 2.1.2 会导致存储库错误

转载 作者:行者123 更新时间:2023-12-01 23:12:11 32 4
gpt4 key购买 nike

我尝试将工作应用程序从 Spring Boot 2.0.6 升级到 2.1.2。在此更改之后,我在测试中遇到了一些麻烦,但最终解决了这个问题。我可以从 NetBeans (mvn clean install) 成功构建应用程序。但是,当我尝试使用 mvn spring-boot:run 从命令行运行时,我得到的是:


APPLICATION FAILED TO START


Description:

The bean 'xxxRepository', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

有趣的是,每次我尝试运行它时,错误都在不同的存储库中,但总是显示相同的消息。

这似乎与 this change 有关:

Bean Overriding

Bean overriding has been disabled by default to prevent a bean being accidentally overridden. If you are relying on overriding, you will need to set spring.main.allow-bean-definition-overriding to true.

鉴于它显然影响了我所有的存储库,我猜测某处存在配置问题。我可以按照建议的操作进行操作,但实际上并没有什么不同。问题是我不知道要更改配置以使其再次正常工作。我什至不确定要发布与该问题相关的内容。关于如何解决这个问题的任何想法?

最佳答案

我们从 Spring Boot 2.0.x 升级到 2.1.x 时遇到了这个问题。

我可以通过允许使用 spring.main.allow-bean-definition-overriding: true 覆盖 bean 定义来“解决”这个问题。但感觉像是隐藏了根本原因。 事实上,bean 定义覆盖曾经用来隐藏我们这边的糟糕配置。

在检查了我们的 @Configuration 之后我们使用 @ComponentScan 两次扫描包含我们存储库的包的类和 @EnableJpaRepository在来自不同类的相同包上:一次使用过滤器 @ComponentScan.Filter ,一次没有。

删除第二个组件扫描解决了这个问题。

关于spring-boot - 从 2.0.6 升级到 Spring Boot 2.1.2 会导致存储库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54542974/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com