gpt4 book ai didi

java - 使用 Gradle 构建的 Java Spring Boot 项目中偶尔出现 BeanCreationException

转载 作者:行者123 更新时间:2023-12-03 02:45:42 25 4
gpt4 key购买 nike

有时我在启动由 Gradle 构建的 Java Spring Boot 单 JAR 应用程序时会收到 BeanCreationException。我的调查表明它取决于 JAR 文件以及它是如何由 Gradle 构建的。大多数情况下(但并非总是如此),当我在 Linux 系统上构建项目时,我会看到异常。但是我从来没有用在 Windows 上构建的 JAR 或从 IntelliJ Idea 运行时重现这个问题。
我尝试将工作 JAR 的内容与抛出异常的 JAR 的内容进行比较 - 所有 *.class 文件(包括元和资源)都是二进制相等的,唯一的区别在于文件在 JAR/ZIP 存档中的存储顺序.我还尝试在 Windows 上解压缩失败的 JAR,然后将其重新打包成一个新的 JAR 文件(使用 7-zip)——应用程序启动时没有任何异常。这个奇怪的解决方法解决了这个问题,但这不是我每次在 linux 机器上构建后都想做的事情。
异常建议检查循环引用,所以我尝试用 @Autowired bean 构造函数替换 @Autowired 属性来帮助我找到问题,但这没有帮助。堆栈跟踪没有提到我的任何类,所以我不知道哪个 bean 可能对这个问题负责。而且由于该问题仅偶尔发生并且可以通过重新打包 JAR 文件来解决,因此我不确定是否存在任何循环引用。
请你帮助我好吗?欢迎任何意见或建议。
JDK:openjdk 8u262
Gradle 版本 5.6
Spring Boot 2.3.1
异常信息:

BeanCreationException: Error creating bean with name 'webConfig':
Invocation of init method failed; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'requestMappingHandlerAdapter' defined in class path resource
[org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]:
Unsatisfied dependency expressed through method 'requestMappingHandlerAdapter' parameter 0;
nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException:
Error creating bean with name 'mvcContentNegotiationManager':
Requested bean is currently in creation: Is there an unresolvable circular reference?

最佳答案

默认情况下,Spring 管理自己 bean 的生命周期,然后在启动期间安排它们的初始化顺序。
这里是使用@DependsOn 注释来订购 bean 的完整示例实例化。
您还可以在官方 Spring documentation 中找到更多详细信息

关于java - 使用 Gradle 构建的 Java Spring Boot 项目中偶尔出现 BeanCreationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64482452/

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