หลังจากที่ Spring Boot 2.2.0 ออกด้วย final ออกมาให้ใช้งาน
มีการปรับปรุงหลาย ๆ อย่าง
หนึ่งในนั้นคือ การปรับปรุงประสิทธิภาพของการทำงานให้เร็วขึ้น
นั่นก็คือ Lazy initialization
ช่วยลดเวลา startup ของ application นั่นเอง
รวมทั้งยังลดจำนวนการใช้งานหน่วยความจำอีกด้วย
น่าจะทำให้การพัฒนา service ดีขึ้นอีกด้วย

มาดูการใช้งานกันหน่อย

ซึ่งไม่ได้ยากอะไรเลย เพียงแค่เพิ่ม configuration เข้าไปเท่านั้นเอง

แต่การใช้งาน 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