Springboot 升级 2.3 到 2.4 版本
如果升级Spring Boot从2.3到2.4,不应该出现任何漏洞问题。实际上,升级到2.4可以期待到安全性和性能的改进。
然而,升级时需要注意一些兼容性问题。在Spring Boot 2.4中,引入了一些重大的更改和删除,因此某些应用程序可能需要进行适当的更改才能正常运行。需要特别注意以下几点。
spring-boot-starter-web增加了对Tomcat 9的支持。如果应用程序依赖于旧版本的Tomcat,可能需要更新代码以支持新的Tomcat API。
在Spring Boot 2.4版本中,一些不推荐使用的功能已被废弃。如果应用程序正在使用这些功能,则需要更新代码以使用推荐的替代方案。
Spring Boot Devtools的工作方式已经改变,现在支持热部署以保持应用程序状态。如果您使用Spring Boot Devtools,可能需要更新代码以适应这些更改。
在Spring Boot 2.4中,引入了一些安全改进,如更强大的密码加密算法和更严格的默认安全策略。由于这些变更可能会对应用程序产生影响,因此需要仔细检查代码,确保继续正常运行。
グレードする際は、主に以下の点に注意する必要があります:
1. APIの変更:新しいバージョンでは、以前のバージョンとは異なるAPIが導入される場合があります。したがって、アップグレード前にコードを慎重に確認し、APIの互換性について確認してください。
2. 依存関係の更新:Spring Bootのアップグレードに伴い、依存関係も更新する必要がある場合があります。それに伴って、他のプロジェクトやライブラリもアップデートする必要があるかもしれません。適切なバージョンの依存関係を使用しているか確認し、必要に応じて更新してください。
3. セキュリティの変更:新しいバージョンでは、セキュリティの改善や新しいセキュリティ機能が追加される場合があります。アップグレード後には、コードや設定がセキュリティ上のベストプラクティスに従っていることを確認してください。
4. パフォーマンスの変更:更新後のバージョンでは、パフォーマンスの向上が行われる場合があります。アップグレード後には、パフォーマンスの低下や改善の可能性を確認するために、パフォーマンステストを実施してください。
5. バグ修正:アップグレードによって、以前のバージョンで発生していたバグが修正される場合があります。アップグレード後には、以前の問題が解決されていることを確認するために、テストを行ってください。
アップグレードプロセスは比較的簡単ですが、注意深く行う必要があります。潜在的な変更に備えるため、上記のポイントに十分な注意を払ってコードを確認してください。
升级Spring Boot从2.3到2.4时,需要注意一些潜在的变更。以下是一些例子。
Spring Boot 2.4 不再支持 Java 8 之前的版本。如果应用程序使用的是 Java 8 之前的版本,请在升级之前先升级 Java 的版本。
@SpringBootTest被修改为隐式地使用随机端口,例如@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)。如果应用程序明确指定了端口号,则可能需要更新代码。
在Spring Boot 2.4中,默认情况下,不会自动加载位于src/main/resources目录下的application.properties或application.yml文件。取而代之的是,可以将application.properties或application.yml文件放置在src/main/resources的子目录中。这样一来,可以更加细致地配置应用程序要加载的属性文件。
在Spring Boot 2.4版本中,如果使用@AutoConfigureMockMvc配置模拟的MVC测试,并且通过@MockBean注入的bean不会替换应用程序中使用的bean。这个变化是为了实现更准确的模拟测试,但是需要注意之前的代码可能会受到影响。
这些只是一些例子,但Spring Boot 2.4还包含了许多其他的变化。在进行升级时,需要查阅官方的发布说明,并确定可能影响应用程序的变化。
在升级Spring Boot版本从2.3到2.4时,需要注意一些潜在的变更。以下是一些例子。
在Spring Boot 2.4中,不再支持Java 8之前的版本。如果应用程序在Java 8之前的版本上运行,需要在升级之前升级Java版本。
@SpringBootTest被修改为像@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)这样,隐式地使用随机端口。如果应用程序明确指定了端口号,则可能需要更新代码。
在Spring Boot 2.4中,位於src/main/resources的application.properties和application.yml文件不再自動加載。取而代之的是,你可以將application.properties和application.yml文件放置在src/main/resources的子目錄中。這樣一來,你可以更精細地設置應用程式要讀取的屬性文件。
在Spring Boot 2.4中,如果使用@AutoConfigureMockMvc配置模拟的MVC测试,通过@MockBean注入的Bean不会替代应用程序中使用的Bean。这是为了实现更准确的模拟测试而进行的更改,但需要注意以前的代码可能会受到影响。
这些只是一些例子,但是Spring Boot 2.4还包含许多其他改变。在升级时,需要查阅官方发布说明,并确定可能影响应用程序的变更。
Spring Boot 2.4 中有一些不再推荐使用的功能。以下是所有的例子。
推荐停用 org.springframework.boot.context.embedded 包,建议使用 org.springframework.boot.web.embedded 包作为替代。
推荐使用 spring-boot-starter-tomcat 或 spring-boot-starter-web 代替 spring-boot-starter-jetty 和 spring-boot-starter-undertow。
推荐不再使用spring-boot-starter-logging中包含的logback-classic。相反,建议直接使用logback-access和logback-core代替。
不再建议使用 spring-webmvc 模块,而推荐使用 spring-web 模块作为替代。
推荐停止使用 spring-boot-starter-security-oauth2-autoconfigure,建议改用 spring-security-oauth2-client 和 spring-security-oauth2-resource-server。
从Spring Boot 2.4开始,不再建议使用spring-boot-devtools模块的LiveReload功能。取而代之的是,它现在支持浏览器自动更新。
以下是在Spring Boot 2.4版本中不再推荐使用的功能。如果您使用了这些功能,建议您升级并使用推荐的替代功能。