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日

相关文章

  • 如何使用gradle将java项目推送至maven中央仓库

    如何使用Gradle将Java项目推送至Maven中央仓库 Gradle是一种流行的构建工具,可以帮助Java开发人员自动化和简化项目构建过程。Maven是另一个流行的构建工具,也是Java项目中最广泛使用的依赖管理工具之一。Maven中央仓库是一个公共的存储库,可以作为发布和共享Java库的地方。本文将介绍如何使用Gradle将Java项目推送至Maven…

    Java 2023年5月20日
    00
  • springMVC拦截器HandlerInterceptor用法代码示例

    下面详细讲解一下“springMVC拦截器HandlerInterceptor用法代码示例”的完整攻略。 什么是HandlerInterceptor? HandlerInterceptor是Spring MVC框架的拦截器,用于在controller处理请求之前和之后进行一些额外的处理。HandlerInterceptor是一个接口,需要自定义实现它,并将其…

    Java 2023年5月31日
    00
  • Java之BigDecimal实现详解

    Java之BigDecimal实现详解 简介 在Java中,float和double类型的数值在进行计算时,会有精度丢失的问题。例如,当两个小数相加时,结果可能会出现偏差,导致计算结果不准确。而BigDecimal类就是专门为高精度计算而设计的一个类。 BigDecimal是不可变的(immutable)的、高精度的(arbitrary-precision)…

    Java 2023年5月18日
    00
  • 微信小程序实现无缝滚动

    准备工作 微信小程序的开发环境 基本的HTML、CSS、JavaScript知识 微信小程序开发文档 实现步骤步骤一:建立一个scroll组件 在wxml文件中使用scroll组件 <scroll-view scroll-x="{{scrollX}}" scroll-y="{{scrollY}}" style=&…

    Java 2023年5月23日
    00
  • 详解Spring Boot 目录文件结构

    下面是详解Spring Boot目录文件结构的攻略。 目录文件结构 作为一款快速构建Java Web应用的框架,Spring Boot提供了一套默认的目录结构,旨在帮助开发人员快速搭建应用并进行开发,其目录文件结构如下: project ├── src/main/java │ └── com/example/demo │ ├── controller │ ├…

    Java 2023年5月15日
    00
  • 在JSP中使用formatNumber控制要显示的小数位数方法

    在JSP中,可以使用<fmt:formatNumber>标签来控制数字的显示格式,包括小数位数。 步骤如下: 在JSP页面中引入JSTL标签库: <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@tagli…

    Java 2023年6月15日
    00
  • Java非侵入式API接口文档工具apigcc用法详解

    Java非侵入式API接口文档工具apigcc用法详解 概述 apigcc是一款非侵入式的API接口文档生成工具,可以帮助Java开发人员快速生成符合RESTful标准的API接口文档,同时支持多种API文档输出格式,包括HTML、Markdown、PDF等格式。 安装 apigcc可以通过npm安装,使用如下命令即可: npm install apigcc…

    Java 2023年5月20日
    00
  • 基于Jquery实现表格动态分页实现代码

    下面是关于“基于Jquery实现表格动态分页实现代码”的完整攻略: 1. 准备工作 在实现表格动态分页之前,需要准备以下工作: HTML页面:需要有数据展示的表格和分页控件的布局; Jquery库:要使用Jquery库,可以从官网下载或者引入CDN; 2. 实现步骤 2.1 准备数据 首先需要有数据源,这里以JSON数据为例,数据格式如下: { "…

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