我们目前工作的系统是基于Spring Boot 1.5.19.RELEASE、Spring Cloud Edgware.SR3开发的,因为一个新项目开发过程的体验,所以在考虑升级到Spring Boot 2.0。查看了一下最近更新的几个版本,选择了Spring Boot 2.1.2.RELEASE、Spring Cloud Greenwich.RELEASE做了一个Demo。
Demo是在原系统剔除了Spring Security的基础上搭建的。
一、主要升级工作
- spring boot版本升级为2.1.2.RELEASE
- eureka client和feign替换为以下依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency>
- 相关启动类引用包路径修改
二、问题及处理过程汇总
服务调试顺序:Eureka -> Gateway -> Services,部分问题是服务共有的,调试过程前面的服务已处理了,所以后面的服务不用处理。
-
Eureka
- 启动报错:The bean 'proxyRequestHelper', defined in class path resource [org/springframework/cloud/
-
- 解决:Spring Boot版本与Spring Cloud版本不匹配报错,Spring Boot升级成2.1.2.RELEASE版本,原Spring Cloud是Edgware.SR3,版本过低。在官网查找更新博客,将Spring Cloud升级为Greenwich.RELEASE版本问题解决。
-
Gateway
- 启动报错:启动时总是能看到多个此类异常
- 解决:此问题与IDE环境有关系:在IDEA IntelliJ环境启动,问题原因是IntelliJ的默认服务器配置,只需要删除“启用启动优化”和“启用JMX代理”复选框,报错处理。在Eclipse环境启动类型,从STS plugin Spring Boot dashboard或Run菜单中的Run Configurations转到启动配置,然后取消勾选Enable JMX复选框。
- 启动报错:ZuulProperties冲突
- 解决:在网关启动类中维护了一个zuulProperties,修改为下图。
- 解决:在网关启动类中维护了一个zuulProperties,修改为下图。
-
Services
- 配置pom.xml时eureka-client和feign依赖报错
- 解决:pom.xml中增加仓库配置。
<repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
- 解决:pom.xml中增加仓库配置。
三、总结
项目中使用的一些组件还未做升级处理,目前过程还算很顺利,估计接入Spring Security之后可能会比较麻烦。