目的
Spring Framework 6がリリースされ、その他のパッケージも合わせて変更できそうだったので、勉強のために以前作ったプロジェクトをSpring Framework 6にアップグレードしてみることにした。
主な変更点
Jakarta EE 9への対応
大まかに言うとjavaxからjakartaに変わる。
import javax.servlet.http.HttpServletRequest;
↓
import jakarta.servlet.http.HttpServletRequest;
さらに、Jakarta EEに対応しているTomcat 10などに、デプロイする必要がある。
実際に変更した箇所
依存関係
ライブラリの変更、またはバージョンアップを行った。
- greenmail 2
- hibernate… 6.1
- hibernate-search-mapper-orm => hibernate-search-mapper-orm-orm6 6.1
- hibernate-validator 7
- javax.el => jakarta.el 4
- javax.servlet => jakarta.servlet 6
- jakarta.mail 2
- jakarta.xml.bind-api 3
- jaxb-runtime 3
- spring-core… 6
- spring-data-jpa 3
- spring-security… 6
- thymeleaf-spring5 => thymeleaf-spring6 3.1
- thymeleaf-extras-springsecurity5 => thymeleaf-extras-springsecurity6 3.1
コードの変更点
javaxをjakartaに書き換えただけの部分は省略する。
Spring MVC設定の変更
下記のようThymeleafのspring5パッケージをspring6に変更する。Resolver以外も同様に変更する。
<bean id="templateResolver" class="org.thymeleaf.spring6.templateresolver.SpringResourceTemplateResolver">
MultipartResolverはStandardServletMultipartResolverを使用する。
web.xmlの<servlet>タグに<multipart-config>の設定を追加すると有効になる。
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver" />
Thymeleaf Ver. 3.1にアップグレードも同時に行った場合は下記の変更も必要になる。
Thymeleaf 3.1にアップグレード
web.xmlの変更
下記の通り、変更する。
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd"
version="5.0">
まとめ
javaxからjakartaに変更する箇所は多いが、結構簡単にアップグレード出来た。