摘要:前兩天組里的大佬心血來潮,讓我這周把項目里的版本升級到最新版本,目前項目用到的是版本為的版本為現在按照要求統一升級到。三數據庫連接池同樣也是版本不兼容,需要升級到,親測有效。差不多這些,后續遇到其他問題還會繼續補充。
前兩天組里的大佬心血來潮,讓我這周把項目里的spring-boot、spring-cloud版本升級到最新版本,目前項目用到的是spring-boot版本為1.5.9.RELEASE,spring-cloud的版本為Edgware.SR2,現在按照要求統一升級到2.0.1.RELEASE、Finchley.RELEASE。以下分享一些我遇到的坑: pom.xml配置如下,內容太長,只貼出部分核心的內容
org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE org.mybatis.spring.boot mybatis-spring-boot-starter 2.0.1.RELEASE org.springframework.cloud spring-cloud-dependencies Finchley.RELEASE pom import redis.clients jedis 2.9.0 com.fasterxml.jackson.core jackson-databind 2.9.4 com.zaxxer HikariCP 2.7.8 org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-starter-netflix-zuul org.springframework.cloud spring-cloud-starter-netflix-eureka-client org.springframework.boot spring-boot-starter-data-redis
一.spring boot2.0.x引用redis的版本需要升級至2.9.0,以前的版本將不支持jedisConnFactory對象的注入,具體報錯如下
二.jackson-databind 這個依賴可以將JSON格式的數據轉化為類對象,這里有個很蛋疼的坑,之前項目里用的版本是2.6.3,升級過后本地項目也運行沒啥問題,上了測試環境就報錯,看了啟動日志上是缺少Jackson包里的某個類導致報錯,上網查了下,這種情況一般是spring的版本和jackson的版本不兼容導致,新版本已經不支持2.6.3的依賴,于是直接換成最新的版本2.9.0,問題解決。
三.HikariCP 數據庫連接池 同樣也是版本不兼容,需要升級到2.7.8,親測有效。
四.spring boot 2.0之前的版本用的spring-cloud-starter-feign,升級過后你會發現這個依賴下有關的類都找不到了,看了下2.0之后的新特性,是改成了spring-cloud-starter-openfeign,注解類名的路徑也變了,由org.springframework.cloud.netflix.feign.FeignClient變為org.springframework.cloud.openfeign.FeignClient。
@Configuration public class DataSourceConfig { @Primary @Bean(name = "pmDataSource") @ConfigurationProperties(prefix = "credit-push-message.jdbc") public DataSource pmDataSource() { return DataSourceBuilder.create().type(HikariDataSource.class).build(); } }
五.配置數據源這里也發現一個問題,@ConfigurationProperties,新版本將不再支持自定義的前綴包含大寫或下劃線格式類型,官方給出的規范是小寫加連接號。
spring: http: encoding: charset: utf-8 force: false enabled: false mvc: favicon: enabled: false jmx: enabled: false application: name: push-message-gateway server: port: 21102 servlet: context-path: /push-message-gateway ssl: enabled: false error: whitelabel: enabled: false zuul: ignored-services: "*" # 設置忽略的服務 routes: configServer: path: /config/** serviceId: push-message-config gatherServer: path: /gather/** serviceId: push-message-gather messageServer: path: /center/** serviceId: message-center info: app: name: "@parent.artifactId@" #從pom.xml中獲取 description: "@project.description@" version: "@project.version@" spring-boot-version: "@spring.boot.version@" eureka: client: serviceUrl: defaultZone: ${eureka-zone-url} instance: preferIpAddress: true instance-id: ${spring.cloud.client.ip-address}:${server.port}
六.新版本不支持context-path: /push-message-gateway的寫法,必須寫成servlet:context-path: /push-message-gateway,instance-id這里的客戶端ip地址也不兼容,需要從spring.cloud.client.ipAddress變成spring.cloud.client.ip-address。
差不多這些,后續遇到其他問題還會繼續補充。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76832.html
摘要:因為默認開啟了所有攻擊防御,需要禁用的防御。版本變化有點大,本次已成功升級了基礎依賴,及注冊中心配置中心。其他像代替了及其他組件再慢慢升級,的快速發展令升級變得非常蛋疼,本文記錄了升級過程中踩過的所有的坑。。。 Spring Boot 2.x 已經發布了很久,現在 Spring Cloud 也發布了 基于 Spring Boot 2.x 的 Finchley 版本,現在一起為項目做一次...
摘要:將請求封裝成將請求封裝成的接口定義是但是最外層傳進來的參數是和,需要將他們封裝成,這個工作就是在中做的。其實主要任務就是將各種參數封裝成除了和本次請求相關的和,還有會話管理器,編碼解碼器配置,國際化配置還有用于擴展。本系列代碼地址:https://github.com/JoJoTec/spring-cloud-parent接下來,將進入我們升級之路的又一大模塊,即網關模塊。網關模塊我們廢棄了...
閱讀 2020·2021-10-09 09:41
閱讀 1596·2021-09-28 09:36
閱讀 1100·2021-09-26 09:55
閱讀 1285·2021-09-10 11:17
閱讀 1141·2021-09-02 09:56
閱讀 2755·2019-08-30 12:58
閱讀 2927·2019-08-29 13:03
閱讀 1847·2019-08-26 13:40