เส้นทางการ upgrade ไปสู่ Spring Boot 3
เมื่อสิ้นเดือนที่ผ่านมา Spring Boot ได้ออก minor release ใหม่ คือ v2.7.0 โดยมี update ใหม่ ๆ เช่น
- Spring for GraphQL 1.0
- Docker alternative image building with Podman
- Actuator info endpoint ละเอียดขึ้น
- Dependency upgrades ต่าง ๆ
สำหรับ project ที่ expose auto-configuration เช่น Maven library เดิมทีเราจะกำหนด auto-configuration class ไว้ใน META-INF/spring.factories
ใน resource classpath ดังนี้
ใน Spring Boot 2.7 จะต้องเปลี่ยนเป็น META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
ใน resource classpath ดังนี้
สิ่งที่น่าสนใจของการ upgrade ใน version นี้คือ มันจะเป็น version สุดท้ายก่อนที่จะ upgrade อีกเป็น 3.0 ที่จะมาใน November 2022 นั่นหมายความว่าเราจะต้องเตรียมตัวให้พร้อมแต่เนิ่น มาดูกันว่ามีอะไรต้องทำบ้าง
- Upgrade JDK ให้เป็น Java 17 เนื่องจาก Spring Boot 3.0 จะใช้ Spring Framework 6.0 ซึ่งรองรับ Java 17 ขึ้นไป สำหรับแนวทางการ upgrade สามารถดูได้จากบทความ การ migrate Java project ไป version ใหม่ต้องคำนึงถึงอะไรบ้าง
- Upgrade Spring Boot ให้เป็น 2.7.x เนื่องจากตอน release Spring Boot 3.0 จะมี migration guide จาก 2.7 เท่านั้น หมายความว่าก่อน migrate ตัว Spring Boot version ก็ควรจะอยู่ที่ 2.7.x แล้ว
- Upgrade dependency ให้เป็นล่าสุด เนื่องจาก third-party บางตัวอาจจะไม่รองรับ Spring Framework 6.0 หรือ Jakarta EE 9 ใน Spring Boot 3.0
สามารถดูรายละเอียดเพิ่มเติมได้ใน Preparing for Spring Boot 3.0 จาก Spring Blog