使用SpringBoot中的Netflix Zuul微服务遇到问题。

11

应用启动失败


描述:

在类路径资源 [org/springframework/cloud/netflix/zuul/ZuulServerAutoConfiguration$ZuulCounterFactoryConfiguration.class] 中定义的bean 'counterFactory' 无法注册。该名称的bean已在类路径资源 [org/springframework/cloud/netflix/zuul/ZuulServerAutoConfiguration$ZuulMetricsConfiguration.class] 中定义,并禁用了覆盖。

操作:

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


1
如果您使用Maven,请分享您的pom.xml。 - Chaitanya Gudala
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> - Prudhvi Gudala
2个回答

14

请使用Spring Boot 2.0.x版本...因为他们还没有在2.1.x版本中引入Zuul支持。

谢谢


但是有没有任何方法也支持2.1.x呢? - Prudhvi Gudala
不支持Spring 2.1版本。可能在未来会支持。在那之前,您也可以使用2.0.X版本,它具有相同的功能... - Bhanuj

-2

可以通过在yml或properties文件中添加以下配置来解决此问题。

    spring:
      main:
        allow-bean-definition-overriding: true

然而,在启用bean定义覆盖时要小心,因为如果没有正确理解它们的预期使用和依赖关系,可能会导致意外行为,特别是在定义和覆盖多个具有相同名称的bean时。建议根据应用程序的要求和设计选择适当的选项。将bean重命名为唯一名称通常是避免冲突并确保关注点正确分离的更安全的方法。 - West Side

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接