หลังจากที่ Spring Boot 2.2.0 ออกด้วย final ออกมาให้ใช้งาน
มีการปรับปรุงหลาย ๆ อย่าง
หนึ่งในนั้นคือ การปรับปรุงประสิทธิภาพของการทำงานให้เร็วขึ้น
นั่นก็คือ Lazy initialization
ช่วยลดเวลา startup ของ application นั่นเอง
รวมทั้งยังลดจำนวนการใช้งานหน่วยความจำอีกด้วย
น่าจะทำให้การพัฒนา service ดีขึ้นอีกด้วย
มาดูการใช้งานกันหน่อย
ซึ่งไม่ได้ยากอะไรเลย เพียงแค่เพิ่ม configuration เข้าไปเท่านั้นเอง
[gist id="3b8f66774f619c943616c1ab4a481bf5" file="1.txt"]แต่การใช้งาน Lazy initialization ก็มีข้อเสียเช่นกัน
เนื่องจากไม่ได้สร้าง instance ของ bean ต่าง ๆ ใน application ของเราขึ้นมา
ทำให้ exception ที่ต้องเกิดขึ้นตอน startup หายไป
แต่ไปเจอตอนใช้งานแทน
การส่ง HTTP request เข้ามาครั้งแรก จะใช้เวลานานขึ้น
เนื่องจากต้องไป instance ของ bean ที่ต้องใช้งานขึ้นมานั่นเอง
ใน Spring Boot 2.2.0 ยังมีความสามารถอื่น ๆ อีก
ยกตัวอย่างเช่น
- สนับสนุน Java 13
- Immutable binding
- สนับสนุน RSocket
- สามารถจัดกลุ่มใน Healhcheck ผ่าน actualtor ได้ง่ายขึ้น ทำให้แยกกลุ่มระหว่าง liveness และ readiness ได้ง่าย
Reference Websites