Spring Cloud升级最新Finchley版本的所有坑

Spring Cloud升级最新Finchley版本的所有坑

升级Spring Cloud版本是一个具有一定挑战性的任务,本篇文章主要介绍在升级Spring Cloud到最新版本Finchley时的几个注意事项及相关解决方案。

1. 升级前的准备工作

在升级Spring Cloud前,需要先了解当前的Spring Boot版本与Spring Cloud版本之间的兼容性。根据Spring Boot版本选择对应的Spring Cloud版本,可以在官网查看最新的兼容版本。并且需要对工程依赖进行排查,是否存在可用的最新版本。

2. 坑一:Hystrix Dashboard不能正常访问

在升级到Finchley版本后,Hystrix Dashboard不能正常访问的情况比较常见。这是因为在Finchley版本中,Hystrix Dashboard不再在spring-cloud-starter-hystrix-dashboard包中,而是移到了spring-boot-starter-actuator包中,需要修改配置文件application.yml或者在启动类中加注解 @EnableHystrixDashboard 。

修改application.yml文件:

management:
  endpoints:
    web:
      exposure:
        include: hystrix.stream,health

或者在启动类上添加@EnableHystrixDashboard注解:

@SpringBootApplication
@EnableHystrixDashboard
public class ServiceConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceConsumerApplication.class, args);
    }
}

3. 坑二: Zuul路由配置不匹配

在Finchley版本升级后,Zuul路由配置发生了变化,需要修改路由配置文件。比如,在老版本的Spring Cloud中,以下的配置是正确的:

zuul:
  routes:
    service-provider:
      path: /api/**
      service-id: service-provider

但是在Finchley版本中,上述的配置就无法匹配到指定的服务,正确的配置如下:

zuul:
  routes:
    service-provider:
      path: /api/**
      url: http://service-provider/**

在新版本中,需要使用url字段来指定服务的地址,需要加上两个星号。

4. 示例一

在升级Spring Cloud版本后,启动应用时,发生以下错误:

***************************
APPLICATION FAILED TO START
***************************
Description:
Field xxxService in com.xxx.controller.XxxController required a bean of type 'xxxService' that  
could not be found.
Action:
Consider defining a bean of type 'xxxService' in your configuration.

在检查了代码后,发现代码无误,Spring Cloud版本也升级到最新版本。此时,需要查看业务工程的starter是否存在冲突的依赖。在此示例中,发现业务工程的starter存在和Spring Cloud版本所需的starter冲突的情况,需要将业务工程依赖的starter版本降低,来保证和Spring Cloud版本的starter能够兼容。

5. 示例二

在升级Spring Cloud版本后,启动应用时,发生以下错误:

***************************
APPLICATION FAILED TO START
***************************
Description:
The BeanFactory.getRuntimeBeanNameGenerator() method must be implemented.
Action:
Upgrade Spring to 5.0.x or later.

这是因为当前的Spring Boot版本过低,需要将Spring Boot升级到5.0.x及之后的版本,才能和当前使用的Spring Cloud版本兼容。

总结

在升级Spring Cloud版本时,需要注意Spring Boot版本和Spring Cloud版本之间的兼容性,同时还需要针对具体业务的情况进行调整和排查。如果发现任何问题,要根据具体的错误提示进行排查,查看依赖是否存在冲突或者特定功能的使用方式是否发生了变化。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Cloud升级最新Finchley版本的所有坑 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • vue集成百度UEditor富文本编辑器使用教程

    Vue集成百度UEditor富文本编辑器使用教程 在Vue项目中,我们通常需要使用富文本编辑器来帮助用户进行文本输入。本文将详细介绍如何在Vue中集成百度UEditor富文本编辑器,并且提供两个示例说明来帮助读者更好地理解。 第一步:安装百度UEditor 我们可以通过npm命令来安装百度UEditor。在终端中进入Vue项目的根目录,执行以下命令即可: n…

    Java 2023年6月15日
    00
  • Java流程控制语句最全汇总(上篇)

    《Java流程控制语句最全汇总(上篇)》是一篇详细介绍Java中流程控制语句的文章,包含了if语句、switch语句、while循环、do-while循环、for循环、break语句、continue语句等内容。以下是该篇文章的详细攻略: 一. if语句 在Java中,if语句用于判断某个条件是否成立,并根据判断结果执行相应的代码块。if语句的基本语法如下:…

    Java 2023年5月19日
    00
  • 教你用Java SpringBoot如何解决跨域

    教你用 Java Spring Boot 如何解决跨域 在本文中,我们将详细讲解如何使用 Java Spring Boot 解决跨域问题。我们将使用 Spring Boot 2.5.0 版本的源码进行分析。 什么是跨域? 跨域是指在浏览器中,当一个 Web 应用程序试图访问另一个域名下的资源时,浏览器会阻止这种行为。这是由于浏览器的同源策略所导致的。同源策略…

    Java 2023年5月15日
    00
  • Java如何获取Date的“昨天”与“明天”示例代码

    获取Date的“昨天”与“明天”可以通过以下步骤实现: 步骤一:获取当前日期 首先,我们需要获取当前的日期。Java中可以使用java.util.Date类来表示日期时间。可以通过new Date()方法获取到当前的日期: Date today = new Date(); 步骤二:计算“昨天” 要计算“昨天”,我们需要通过java.util.Calendar…

    Java 2023年5月20日
    00
  • Linux系统中Tomcat环境配置方式

    下面是详细讲解 Linux 系统中 Tomcat 环境配置方式的完整攻略: 1. 下载Tomcat 首先,需要从官方网站下载 Tomcat,下载地址:https://tomcat.apache.org/download-90.cgi 在这里我们选择下载 Tomcat 9.0 版本,下载完成后解压。 2. 配置环境变量 将 Tomcat 解压到目标位置,比如 …

    Java 2023年5月19日
    00
  • 一文带你入门SpringMVC的配置与使用

    以下是关于“一文带你入门SpringMVC的配置与使用”的完整攻略,其中包含两个示例。 1. 前言 SpringMVC是一种常用的Java Web开发框架,它可以帮助开发者快速构建Web应用程序。本攻略将详细讲解SpringMVC的配置与使用,帮助读者快速入门SpringMVC框架。 2. SpringMVC的配置 以下是SpringMVC的配置步骤: 配置…

    Java 2023年5月16日
    00
  • java环境变量的配置方法图文详解【win10环境为例】

    Java环境变量的配置方法图文详解(Win10环境为例) Java编程利用JDK和JRE提供的库来开发和运行Java程序。在安装Java后,要配置Java环境变量,才能在命令行模式下运行Java程序。 下面是Java环境变量在Win10环境下的配置方法: 1. 下载JDK 首先,从官网上下载对应平台的JDK安装包。 示例说明:下载JDK8u291 Windo…

    Java 2023年5月23日
    00
  • Android Java crash 处理流程详解

    下面我来为你详细讲解“Android Java crash 处理流程详解”的完整攻略。 Android Java crash 处理流程详解 在Android开发中,我们经常会遇到应用程序由于各种原因而崩溃的情况。此时,我们需要进行相应的处理操作,才能有效减少应用程序的异常崩溃情况,提高用户体验。本文将详细介绍Android Java crash的处理流程,帮…

    Java 2023年5月25日
    00
合作推广
合作推广
分享本页
返回顶部