Choerodon Spring Boot 1.5.x遷移2.0.x指南

官方指南

spring boot 2.0 升級指南

Spring Boot Security 2.0升級指南

pom文件修改

  • choerodon-framework-parent升級為0.9.0.RELEASE
  • choerodon.starters.version升級為0.10.0.RELEASE
  • spring-cloud-starter-eureka => spring-cloud-starter-netflix-eureka-client
  • spring-cloud-starter-zuul => spring-cloud-starter-netflix-zuul
  • spring-cloud-starter-feign => spring-cloud-starter-openfeign
  • spring-cloud-starter-eureka-server => spring-cloud-starter-netflix-eureka-server

單元測試

單元測試報如下:

java.lang.IllegalStateException: Failed to transform class with name io.choerodon.iam.app.service.impl.AccessTokenServiceImplSpec. Reason: null
...
Caused by: java.util.ConcurrentModificationException
...

或者

java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker
...
Caused by: java.lang.NoClassDefFoundError: org/mockito/cglib/proxy/MethodInterceptor
...
Caused by: java.lang.ClassNotFoundException: org.mockito.cglib.proxy.MethodInterceptor
解決方法:
  • powermock.version 1.7.4 => 2.0.0-beta.5
  • powermock-api-mockito => powermock-api-mockito2
  • 添加指定版本javassist
        <dependency>
            <groupId>org.javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.24.0-GA</version>
        </dependency>

如果單元測試里有自己mock的DiscoveryClient,需要在application-test.yml文件中將Spring boot 2.0自動注入的幾個DiscoveryClient排除掉,否則會報primary bean沖突的問題

spring:
  autoconfigure:
    exclude:
      - org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration
      - org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
      - org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration
      - org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClientAutoConfiguration
      - org.springframework.cloud.client.discovery.noop.NoopDiscoveryClientAutoConfiguration

配置修改

  • spring.http.multipart => spring.servlet.multipart
  • management.port => management.server.port
  • 許多server.*屬性 ( Servlet 特有的) 已經(jīng)轉(zhuǎn)移到server.servlet.*, 比如server.context-path --> server.servlet.context-path
  • security.ignored被移除,使用代碼替代@Value("${security.ignored:/choerodon/**")
  • management.security.*去除,默認只有端點/health/info是暴露的,開放所有端點可以使用management.endpoints.web.exposure.include=*
  • endpoints.<id>.enabled修改為management.endpoint.<id>.enabled

chart修改

  • 修改deployment.yamlreadinessProbe探針,localhost:{{ .Values.deployment.managementPort }}/health => localhost:{{ .Values.deployment.managementPort }}/actuator/health
  • 修改values.yaml中的metrics.path /prometheus=>/actuator/prometheus

導(dǎo)入包

  • org.springframework.cloud.netflix.feign => org.springframework.cloud.openfeign
  • org.springframework.boot.bind不再可用,并被新的寬松綁定規(guī)則所取代, RelaxedDataBinderBinder取代
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文鏈接:https://docs.spring.io/spring-boot/docs/1.4.x/refere...
    pseudo_niaonao閱讀 4,896評論 0 9
  • spring-boot-admin為我們基于spring-boot的基礎(chǔ)數(shù)據(jù)安全端口提供了基礎(chǔ)的可視化監(jiān)控功能。還...
    Comcen閱讀 10,584評論 8 22
  • Spring Cloud學(xué)習(xí)02-服務(wù)注冊與發(fā)現(xiàn) Spring Cloud簡介 Spring Cloud是一個基于...
    it_zzy閱讀 4,765評論 2 20
  • 像一陣被詩染過的風(fēng) 你就那樣直抵我心 多年后當(dāng)我回想時 不禁皺眉猶疑 那時的我為何會毫不猶豫的讓自己擦去一半自己 ...
    詩琢閱讀 394評論 1 4
  • 第一節(jié) 一般規(guī)定 第三百二十二條 技術(shù)合同是當(dāng)事人就技術(shù)開發(fā)、轉(zhuǎn)讓、咨詢或者服務(wù)訂立的確立 相互之間權(quán)利和義務(wù)的...
    LegalSweetheart閱讀 660評論 0 0

友情鏈接更多精彩內(nèi)容