即使在 spring.main.allow-bean-definition-overriding 设置为 true 之后,Spring Bean 异常

问题描述

我们在微服务环境中使用 Spring Boot + Spring Integration Framework,部署环境为 Tomcat VM。

即使在 application.properties 和 spring.main.allow-bean-deFinition-overriding 设置为 true 之后 云配置服务器 application.properties spring boot throws,

行动:

bean 'deleteQuery' 在 org.springframework.integration.dsl.StandardIntegrationFlow#114 bean 定义中定义,无法注册。已经定义了具有该名称的 bean 并且禁用了覆盖。

描述:

考虑重命名其中一个 bean 或通过设置 spring.main.allow-bean-deFinition-overriding=true 启用覆盖

子容器无法启动,出现以下异常:

ERROR ContainerBase - 一个子容器在启动过程中失败 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法启动组件 [StandardEngine[Tomcat].StandardHost[localhost].StandardContext 在 java.util.concurrent.FutureTask.report(FutureTask.java:122) [na:1.8.0_71] 在 java.util.concurrent.FutureTask.get(FutureTask.java:192) [na:1.8.0_71] 在 org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916) ~[tomcat-embed-core-8.0.30.jar:8.0.30] 在 org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:871) [tomcat-embed-core-8.0.30.jar:8.0.30] 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.0.30.jar:8.0.30]

不知道为什么 bean 被覆盖,因为它是由 3rd 方应用程序完成的..

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)