前言: 最近在 阅读了部分的热门的开源项目,发现很多都开始 升级迁移到springboot 3 上了,
随着 springboot 3 最低 支持 jdk 版本是17 ,项目后面升级 也需要升级到17 上来,所以记录一下实操。

参考指南

阅读本文前,可以先参考我推荐 几篇升级指南的文章 ,会更加容易知道升级的点在哪里:

https://segmentfault.com/a/1190000044513857
第三方spring中文网

关 spring security 部分的迁移参考,本案例用的是sa-token:
https://blog.csdn.net/arbiterlk/article/details/131983719

具体步骤

  1. 把 pom 的spring-boot-starter-parent version 统一为 3.3.2 是现在最新的稳定版本(这里以 此版本为例),如果你不是以此作为 父工程的,那么在相应的工程 更改为自己的3.x.x版本:
    (小提示: 标识GA的为稳定发行版 )
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.2</version>
        <relativePath/>
    </parent>
  1. 通过 ReImport maven 后 javax的包 显示 标红,此时就可以 替换成 Jakarta下的包了,注意jdk17 中任然保留了一些 javax 的包内容 ,如javax.sql ,javax.crypto 这些可以不用更改 。
    在这里插入图片描述
  2. 把那些 项目里starter组件为springboot2的依赖更改为 springboot3 版本的依赖 ,比如我这里的 更改了 satoken和 mybatis-flex等,这里大家依据实际项目用了那些组件,去到其相应官网作替换即可。
<!--        引入mybatis-flex springboot 依赖-->
<dependency>
  <groupId>com.mybatis-flex</groupId>
  <artifactId>mybatis-flex-spring-boot3-starter</artifactId>
              <version>1.9.5</version>
</dependency> 
<!-- 原来是  -->
        <!-- <dependency>
            <groupId>com.mybatis-flex</groupId>
            <artifactId>mybatis-flex-spring-boot-starter</artifactId>
            <version>1.9.0</version>
        </dependency> -->

        <!-- Sa-Token 权限认证, 在线文档:http://sa-token.dev33.cn/ -->
        <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-spring-boot3-starter</artifactId>
           <version>1.38.0</version>
        </dependency>

<!-- 原来是 -->
        <!-- <dependency>
            <groupId>cn.dev33</groupId>
            <artifactId>sa-token-spring-boot-starter</artifactId>
                     <version>1.38.0</version>
        </dependency> -->

<!-- 升级 到 1.4.3 -->
            <dependency>
                <groupId>io.github.linpeilie</groupId>
                <artifactId>mapstruct-plus-spring-boot-starter</artifactId>
                <version>1.4.3</version>
            </dependency>

通过 spring-boot-properties-migrator 迁移配置文件

  1. 使用 spring-boot-properties-migrator 辅助 配置文件的更改,如果配置文件改动很小,也可以不用,直接更改。

建议在 有 spirng-boot-starter-parent 模块 下新建一个子模块,如果没有,请再添加spring-boot-properties-migrator依赖时指定后项目相应的版本号。 iot-yml-migration (自定义命名)
在这里插入图片描述

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-properties-migrator</artifactId>
    <scope>runtime</scope>
</dependency>
  1. 把想要改的 yml ,建议一整个 resource 包下 全部copy一份到这个模块下
    在这里插入图片描述
    因为有多个环境需要更改 首先在主配置文件里 指定一个环境后缀如: dev
    在这里插入图片描述
  2. 然后运行application:
    在这里插入图片描述
  3. 显示修改结果:
    首次执行时打印如下内容 ,说明对 配置做了相应的更改
The use of configuration keys that have been renamed was found in the environment:

Property source 'Config resource 'class path resource [application-devv2.yml]' via location 'optional:classpath:/'':
	Key: spring.redis.database
		Line: 91
		Replacement: spring.data.redis.database
	Key: spring.redis.host
		Line: 89
		Replacement: spring.data.redis.host
	Key: spring.redis.password
		Line: 92
		Replacement: spring.data.redis.password
	Key: spring.redis.port
		Line: 90
		Replacement: spring.data.redis.port

根据日志 修改后无日志输出,说明这是 application-dev.yml 已经迁移成功了
在这里插入图片描述

接下来继续更改 application-devv2.yml 指定devv2 的配置文件 ,然后 重复上面的更改步骤:运行application-》修改打印的要更改的地方-》完成
在这里插入图片描述

最后: 这里是一个实操记录,大体迁移思路可以看参考指南的文章。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐