# 旧版本升级springBoot3备忘

# 基础依赖升级

  1. 项目从java8升级到java17
  2. springboot升级到3.x, 比如最新的3.5.13
  3. spring升级到6.x, 比如6.2.17,
  4. 如果使用了springBoot的bom依赖管理,springSecurity会自动升级至6.5.9

# 编译型适配

  1. 所有的javax.servlet修改为 jakarta.servlet;
  2. 所有的 javax.annotation 修改为 jakarta.annotation
  3. springSecuritySecurityFilterChain过滤链构造过程的修改 过滤链构造过程 过滤链构造过程1
  4. springSecurity的授权相关功能的重构,voter,AccessDecisionManager等特性去除,由authorizationFilter以及authorizationManager实现 授权功能重构
  5. 部分spring的接口参数变更,根据提示修改即可(不多)

# 功能型适配

  1. 老版本的spring.factories全部修改为新版本的 spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  2. 开启循环依赖支持,添加配置项:spring.main.allow-circular-references=true
  3. 升级三方依赖,所有带有spring-boot功能的都需要升级;
  • druid-springboot升级至:druid-spring-boot-3-starter:1.2.28
  • mybatis-plus-spring-boot升级至: mybatis-plus-spring-boot3-starter:3.5.16,并处理下兼容性问题
  1. 升级三方依赖组件(如果有)
  • springCloud升级至4.3.1;springCloudAlibaba升级至2025.0.0.0,sentinel升级至1.8.7, dubbo升级至3.2.10
  1. spring6升级了cors校验,不允许使用crossOrigins为*, 需要配置crossOriginPattern为*;

# 启动验证

  • 看项目是否能正常启动;
  • 看功能是否正常;

# springboot4升级备忘

  1. springboot4目前绝大部分三方库尚未适配,即使应用适配了也无法正常启动。
  2. 与springboot3差异比较小;