已解决org.springframework.cloud.client.loadbalancer.reactive.OnNoRibbonDefaultCondition

 原创   
营养快线送你 2023-03-08 错误集锦
0 0 0 525

搭建alibabacloud微服务,昨天自己尝试引用OpenFeign来处理服务调用问题

网上很简单,引用依赖,和写一些代码就能整合成功了

但是我参考他们的代码,最后报错:org.springframework.cloud.client.loadbalancer.reactive.OnNoRibbonDefaultCondition


尝试切换各种依赖版本,各种类型报错层出不穷,但问题确实是版本不兼容问题。

版本依赖关系:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E

后来我发现一种新的版本管理方式,只要这样标明,就能自动管理spring-cloud版本,com.alibaba.cloud版本

<properties>
        <java.version>8</java.version>
        <springframework-cloud.version>2020.0.1</springframework-cloud.version>
        <alibaba-spring-cloud.version>2021.1</alibaba-spring-cloud.version>
    </properties>
  <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${alibaba-spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${springframework-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

我maven不是很深入了解,dependencyManagement这个标签我也是模糊的概念

这样,你pom里的

<dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

都不用写具体的版本了,只要上面定义的版本之间兼容,就不会出现因为版本关系的各种报错了

最后我的代码完美运行