IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 踩坑SpringBoot2.5.2+Consul注册中心 -> 正文阅读

[Java知识库]踩坑SpringBoot2.5.2+Consul注册中心

踩坑SpringBoot2.5.2+Consul注册中心

最近在跟着书上和一些资料学习Java 微服务,上面有一句话:”Spring Boot2.1之后的版本会出现Consul服务注册商的问题,······,由于版本太新,网上也没有相应的解决方案“(2019年的),激发了我的踩坑欲望,所以学习的时候Spring Boot使用了比较新的2.5.2。记录一下踩坑过程,仅供参考。

一. Consul的安装和版本

在官网下载二进制文件,解压配置环境变量即可。
当前使用的版本:
当前使用的版本
当然,使用之前先启动: consul agent -dev

二. 依赖、配置

1、先上来,我直接复制资料提供的源代码中的xml:

配置依赖:

1.Consul

<!--consul-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>

2.SpringCloud

<!--Spring Cloud-->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

3.当时用的SpringBoot版本:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.2</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>
  1. 修改配置文件
server:
  port: 8881
spring:
  application:
    name: hello-consul
  cloud:
    consul:
      host: localhost
      port: 8500
      discovery:
        serviceName: ${spring.application.name}    # 注册到consul的服务名称

使用上面的配置,在idea中更新pom配置后没有显示错误
但启动时,就报错了,类似于下面:
name ‘configurationPropertiesBeans’ defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]
我检查过代码和所有配置,idea也没有报错,但就是启动时就崩掉,以前还真没遇到过这种情况
在网上搜了好久,发现是Spring Boot和Spring Cloud版本不对应问题
为什么会出现版本不对应呢?我连代码都是复制的呀
本着有问题就找官方文档的原则,我在官网(https://spring.io/projects/spring-cloud#overview)上找到了答案,如下图:
在这里插入图片描述
我使用的版本是2.5.2,属于是2.5x。所以应该尝试使用2020.0.3版本

问题就出在这里:
我复制过来的代码把Spring Cloud的依赖的版本写成了(虽然我也大不了解Finchley.RELEASE是啥意思):

 <version>Finchley.RELEASE</version>

而我写的Spring Boot的版本

<version>2.5.2</version>

所以我应该将spring Cloud的版本改成:

 <version>2020.0.3</version>

所以关于版本问题以后一定要严谨,在官网确定一下

这样在理论上就没啥毛病了

但是我在idea中改完之后idea报错了

版本号变红,说的大概是无法解析依赖而且还无法通过编译(这是两三天之前搞的,当时也没有截图)

再三检查代码和各种信息是正确的之后

发现还是报错,这就很令人头大。。。
在网上找了好久未果,然后我尝试删除缓存并重启:

1. 删除下载到本地的依赖

到:C:\Users{你的用户名}.m2\repository\org\springframework\cloud\spring-cloud-dependencies
目录下,会发现你下载过的依赖的jar包或其pom不同版本,我们所要做的是 全选删除

2. 删除idea的缓存信息并重启idea

(我的是idea 2021.1)
在这里插入图片描述
点击蓝色的选项,会出现下图
在这里插入图片描述
(对于窗口中的选项,我全勾选了,对于使用idea打开项目特别多的大佬请慎重,如果东西特别特别多全部删除并重启,可能会有点慢)
选择好之后点击清除并重新启动
重启idea等待一段时间,等待依赖下载完毕,和索引编制完成,理论上就没有问题了,idea应该就不会报错了。
这时如果还报错,任意调换以上两个步骤顺序多试几次,直到不报错为止(应该一次就好),这是种玄学操作。我记得我当时试了两三次(当时也没抱啥希望)。后来遇到了类似的基本上一次就可以。
然后服务就可以启动啦

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 00:03:28  更:2021-07-24 00:04:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/18 18:09:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码