หลาย ๆ ที่น่าจะเห็นแล้วว่า Spring Boot 3 ออกมาแล้ว
และยังไม่พร้อมกันสักเท่าไร
แต่ยังไงก็ต้องไปแน่นอน ไม่ช้าก็เร็ว
ดังนั้นมาดูสิ่งที่เปลี่ยน และ เพิ่มเข้ามา
ที่กระทบต่อการพัฒนา

เรื่องแรกที่เป็น breaking change เลยคือ Jakarta EE 9

ส่งผลให้ package เปลี่ยนไป ทั้ง
พวก servlet จาก javax.servlet ไปเป็น jakarta.servlet
พวก JPA จาก javax.persistence ไปเป็น jakarta.persistence
แต่ข้อดีคือ สามารถ find and replace แล้วใช้งานได้เลย
หรือทำผ่าน Spring Migrator เลย

เรื่องที่สอง GraalVM native support

จากเดิมชื่อว่า Spring Native นั่นเอง
โดยสามารถเพิ่มเข้ามาใน project ได้แบบง่าย ๆ
แนะนำให้ทำผ่าน Spring Initializr
แต่ว่าไม่ support พวก lazy loading และ profile annotation นะ

เรื่องที่สาม การเปลี่ยนแปลงใน Spring Data

พวก CRUD interface นั้น ค่าต่าง ๆ ที่ return เป็น iterator
จะเปลี่ยนเป็น List เป็นทั้งหมด
พวก delete by id จะไม่ throw exception เมื่อไม่พบข้อมูลที่จะลบ

เรื่องที่สี่ มี HTTP interface เพิ่มเข้ามา

สำหรับการเรียกใช้งาน external API ผ่าน HTTP protocol
แต่ต้องใช้งานร่วมกับ WebFlux เท่านั้นนะ
การใช้งานเหมือนกับ Retrofit และ OpenFiegn เลย
แต่เพียงตัวนี้มาพร้อมกับ Spring 6 เลย

ตัวหลัก ๆ ที่น่าสนใจคือ Java 17 ขึ้นไป
ดังนั้นใช้งาน virtual threads ได้ด้วย
และ Spring framework 6

พร้อมหรือยังสำหรับการเปลี่ยนแปลง !!