Spring Boot 2.5.6 to 3.0.2 migration 筆記
正在練習把玩的 Spring Boot 用的是 2.5.6,剛剛升級到 3.0.2,這邊隨手記錄必須的改動
升級 Java
換上 3.0.2 之後,Java 必須要升級到 17 以上,我原本是用 Java 11,所以 IDE 跟 Console 的 JDK 都換成了 19
升級 Gradle
JDK 換成 19 之後跑 gradle 會遇到莫名的 PermittedSubclasses requires ASM9
我把原本的 gradle-7.2
換成 gradle-7.6
就沒事了
更換 jakarta 的 package name
Spring Boot 3.0 Release Note 有說 Jakarta Persistence 為 3.1
Wiki 說明 Jakarta Persistence 3.0 之後把 package name 從 javax.persistence
換成 jakarta.persistence
,因此要做類似的修改
1 | +import jakarta.persistence.Column |
更新 Spring Security 的語法
- authorizeRequest 已經 deprecated
- antMatchers 要換成 requestMatchers
另外有個比較雷的地方,原本我只要用 @EnableWebSecurity
就能注入 Security 相關的 Bean,更新之後要再加上 @Configuration
否則不會有效果
前後差異如下
1 | + |
開發期略過 h2-console
如果你有用 h2-console,而且在開發期想要避開 spring security,可以利用 toH2Console
1 | import org.springframework.boot.autoconfigure.security.servlet.PathRequest.toH2Console |