赞
踩
参考:Migrate Application From Spring Boot 2 to Spring Boot 3 | Baeldung
新版 Jakarta EE 10 带来了 Spring Boot 3 相关依赖的更新:
因此,如果我们通过从spring-boot-starter依赖项中排除它们来管理这些依赖项,我们应该确保更新它们。
让我们从更新 JPA 依赖项开始:
最新版本的jakarta.persistence-api可从 Maven Central 获得。
- <dependency>
- <groupId>jakarta.persistence</groupId>
- <artifactId>jakarta.persistence-api</artifactId>
- <version>3.1.0</version>
- </dependency>
接下来,让我们更新 Servlet 依赖项:
最新版本的jakarta.servlet-api可从 Maven Central 获得。
- <dependency>
- <groupId>jakarta.servlet</groupId>
- <artifactId>jakarta.servlet-api</artifactId>
- <version>6.0.0</version>
- </dependency>
除了依赖坐标的变化,Jakarta EE 现在使用“ jakarta ”包而不是“ javax ”。因此,在我们更新依赖项之后,我们可能需要更新导入语句。
影响注解类,注意旧项目升级时,springboot的注解修改:
javax.annotation.Resource 变为 jakarta.annotation.Resource
javax.annotation.PostConstruct 变为 jakarta.annotation.PostConstruct
- <dependency>
- <groupId>jakarta.validation</groupId>
- <artifactId>jakarta.validation-api</artifactId>
- </dependency>
javax.validation包 统一变为 jakarta.validation包
SpringBoot3部署tomcat时,要求tomcat版本:10.0及以上
原因:
1、SpringBoot升级后配置文件的变化
springboot3.0版本中,spring-web包下的,/META-INF/services/jakarta.servlet.ServletContainerInitializer
SpringBoot2的版本中spring-web包下的,/META-INF/services/javax.servlet.ServletContainerInitializer
2、tomcat版本需要升级到10.0及以上
tomcat10以下的版本,启动的时候,读取的文件是/META-INF/services/javax.servlet.ServletContainerInitializer
tomcat10及以上的版本,启动的时候,读取的文件是/META-INF/services/jakarta.servlet.ServletContainerInitializer
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。