当前位置: 首页 > news >正文

springboot从2.7.2 升级到 3.3.0

文章目录

    • 概要
    • 准备
    • 报错调整
    • 小结
    • 后记

概要

时代在进步,springboot已经来到了3.3.0 , 于是我们也打算升级下sbvadmin到3.3, jdk使用21的版本,下面是升级过程中碰到的一些问题,问题不大。
2.7.2 -> 3.3.0

准备

  • 下载jdk21,可以直接用idea,新建项目的时候下载

在这里插入图片描述
我下了zulu-21

或者 也可以到这里下载 https://learn.microsoft.com/en-us/java/openjdk/download#openjdk-21

  • 修改项目sdk
    这里能修改的都要修改掉
    在这里插入图片描述

  • 修改springboot的版本

    <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.3.0</version><relativePath/></parent>

报错调整

import javax.validation.constraints.NotNull;

改为
import jakarta.validation.constraints.NotNull;

这里有很多类似的报错,把 javax改成jakarta就可以了


Cannot resolve method 'antMatchers' in 'IgnoredRequestConfigurer'

用 requestMatchers() 替代 antMatchers() 即可

Error processing condition on de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration.registrator

 <dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>3.2.3</version></dependency>
改成 3.2.3
https://github.com/codecentric/spring-boot-admin

Invalid value type for attribute 'factoryBeanObjectType': java.lang.String

改为<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-spring-boot3-starter</artifactId><version>3.5.6</version></dependency>https://github.com/baomidou/mybatis-plus

Attempt to deserialize unauthorized class java.util.HashMap; add allowed class name patterns to the message converter or, if you trust the message originator, set environment variable 'SPRING_AMQP_DESERIALIZATION_TRUST_ALL' or system property 'spring.amqp.deserialization.trust.all' to true

Spring Boot 3 不再支持 application/x-java-serialized-object 格式的序列化传输,这是因为该格式与安全最佳实践不兼容,而且 Java 序列化机制存在安全隐患。

package com.sbvadmin.mailserver.config;import org.springframework.amqp.support.converter.DefaultClassMapper;
import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
import org.springframework.amqp.support.converter.MessageConverter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class RabbitMQConfig {@Beanpublic MessageConverter MessageConverter() {return new Jackson2JsonMessageConverter();}
}https://blog.csdn.net/m0_64694079/article/details/134935219   看评论

小结

搞定!

Spring Boot 3.3 正式发布,王炸级更新,应用启动速度直接起飞!

后记

jdk21的版本可以运行,但是我打包的时候一直提示我:

[INFO] --- maven-compiler-plugin:3.13.0:compile (default-compile) @ admin-common ---
[INFO] Recompiling the module because of changed source code.
[INFO] Compiling 6 source files with javac [debug parameters release 17] to target/classesFailed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.13.0:compile (default-compile) on project admin-common: Fatal error compiling: 无效的目标发行版: 21 -> [Help 1]

从报错来看应该是编译的时候用javac 的jdk17 ,但我没找到如何改成21的地方。于是我改成了17来编译,但还是报错。后来发现用鼠标直接点clean 和 package是没问题的,但用命令跑就不行

mvn -B -DskipTests clean package -P prod

于是google了下,找到解决方案:https://www.codejava.net/tools/maven/fix-error-invalid-target-release
其实跑下

mvn -v 

就能知道是,环境变量的问题。 这个问题算解决了。

不过Compiling 6 source files with javac [debug parameters release 17] to target/classes 这里的17我一直没改成功到21。这个问题后续再看吧

相关文章:

  • Golang:使用embed引入静态文件
  • 【Uniapp微信小程序】自定义水印相机、微信小程序地点打卡相机
  • Vue CLI:Vue CLI是一个强大的工具,可以帮助开发者快速地创建和管理Vue项目。我们可以讨论它的一些核心特性,比如热重载、懒加载等
  • 【云原生】kubernetes中pod的生命周期、探测钩子的实战应用案例解析
  • C++入门5——C/C++动态内存管理(new与delete)
  • 使用 C++ 在当前进程中获取指定模块的基址
  • HackTheBox-Machines--Sense
  • 标题:Go语言中的YAML魔法:轻松配置你的环境
  • Python打印当前目录下,所有文件名的首字母
  • Centos7安装Docker和DockerCompose
  • DynamiCrafter ComfyUI 教程 | 对图片转视频的效果进行精细化控制
  • Spark_SparkOnHive_海豚调度跑任务写入Hive表失败解决
  • Mac/Linux getline 无法读取文件内容(读取内容无法显示)
  • 【数据库】MySQL表的操作
  • jenkins的简单使用
  • 4. 路由到控制器 - Laravel从零开始教程
  • CSS实用技巧干货
  • DOM的那些事
  • Electron入门介绍
  • iOS | NSProxy
  • Protobuf3语言指南
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SpringBoot 实战 (三) | 配置文件详解
  • tweak 支持第三方库
  • unity如何实现一个固定宽度的orthagraphic相机
  • windows下mongoDB的环境配置
  • 仿天猫超市收藏抛物线动画工具库
  • 简单基于spring的redis配置(单机和集群模式)
  • 理清楚Vue的结构
  • 利用jquery编写加法运算验证码
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 以太坊客户端Geth命令参数详解
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #include
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)logging(日志模块)
  • (C#)一个最简单的链表类
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Java入门)学生管理系统
  • (solr系列:一)使用tomcat部署solr服务
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (九)信息融合方式简介
  • (四)linux文件内容查看
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • ***linux下安装xampp,XAMPP目录结构(阿里云安装xampp)
  • ***详解账号泄露:全球约1亿用户已泄露
  • .NET 读取 JSON格式的数据
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .net流程开发平台的一些难点(1)
  • .project文件