我們目前工作的系統是基於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之后可能會比較麻煩。