今天自己在配置springcloud项目时,遇到了一些配置冲突的问题,记录一下
一、springboot 与 springcloud 版本配置不一致,导致报错
两者的版本对应关系,具体可参考官网:https://spring.io/projects/spring-cloud
自己根据项目引入的springboot版本,对springcloud稍作调整即可
二、spring-boot-starter-web 与 springcloud冲突,导致报错
Description:
Spring MVC found on classpath, which is incompatible with Spring Cloud Gateway.
Action:
Please set spring.main.web-application-type=reactive or remove spring-boot-starter-web dependency.
解决办法:直接把项目引用的 spring-boot-starter-web 去掉即可
三、缺少负载均衡,导致报错
Description:
Parameter 0 of method loadBalancerWebClientBuilderBeanPostProcessor in org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerBeanPostProcessorAutoConfiguration required a bean of type 'org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction' in your configuration.
引入依赖即可解决
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>