springboot项目版本升级

spring有漏洞领导要升级(虽然我们还是用的jdk8),纱布了,升级吧,反正早晚也得升。

最新springframework 应该是5.3.18,去springboot官方查查对应的boot版本,是2.6.6

因为用的gradle的plugin,省了很多版本配置了

哦,版本是2.1.6.RELEASE ->2.6.6

第一坑 gradle不支持高版本的spring,下载gradle7.2

第二坑 idea不支持高版本gradle,下载idea2021.3.3(30天后面的事自行处理)

第三坑 高版本gradle,应该是7.x不支持compile了,必须给引用改成implementation

第四坑 @Valid引不进来了,发现hibernate的引用没有了,手动添加

implementation(‘org.springframework.boot:spring-boot-starter-validation’)

第五坑 cloud的组件版本和boot的版本不一致,这里我用了ribbon和openfeign,使用大概方法和各种尝试找到版本

implementation(‘org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.2.10.RELEASE’)

implementation(‘org.springframework.cloud:spring-cloud-starter-openfeign:3.1.1’)

第六坑 我guava没了,手动引一下吧

implementation(‘com.google.guava:guava:30.1.1-jre’)

第七坑 feign的一些api变了,不过都还好比较容易解决

request.requestBody().asBytes() 简化成了request.body()

feignException构造方法增加了status的参数等

至此,完成了七宗罪,基本上可以解决编译问题了,后面就是先起本地,再打包上测试环境了,开始。

  1. 本地起的时候报了很多的循环依赖,确实是有循环依赖问题,解决方法一个是加Lazy,一个是加配置spring.main. allow-circular-references:true,个人比较倾向于加lazy吧,毕竟熟一点。
  2. Quartz报找不到数据源,查了一下高版本的jobStore.class需要换一下:org.quartz.impl.jdbcjobstore.JobStoreTX -> org.springframework.scheduling.quartz.LocalDataSourceJobStore
  3. 报错Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerException。网上说的加一个spring.mvc.pathmatch.matching-strategy: ANT_PATH_MATCHER,确实好使但是还没明白什么意思,后面还得研究下
  4. Swagger虽然升级了但是访问不通,这个还挺棘手因为网上也没查到什么建议:我看依赖和启动项,swagger包确实是进去了的,盲猜是因为访问路径改了,可以网上找了几个路径还真就访问不了。没办法看看源码吧,毕竟swagger的之前看过不是很困难。找到了springfox.documentation.swagger-ui.base-url配置项可以配置访问的context路径,然后最后路径是swagger-ui。好吧,配置一下springfox.documentation.swagger-ui.base-url=swagger,然后访问路径就成了swagger/swagger-ui。我们用这个当的docker pod的探针,所以比较关心。
  5. FeignClient的写法变了。我们有动态的调用不同IP的业务,类似于中心服务调用各个地区分区的节点这样。秉承着能用就行的方针,就将feignClient的url设置为’http://’,然后通过path参数设置的IP和端口。现在这么设置不行了,比如原本调用http://1.1.1.1:8080,现在变成了http://null//1.1.1.1:8080。最后查了下应该这么写,参数里加一个URI参数,参数里放ip端口就可以了。
  6. 貌似还有其他的问题,忘了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值