Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

Spring Boot 3.3.0 ออกมาแล้ว

$
0
0

สัปดาห์ที่ผ่านมา Spring Boot 3.3.0 ถูกปล่อยออกมาแล้ว
ใครจะไม่ upgrade แนะนำเลยครับ
โดยความสามารถที่น่าสนใจประกอบไปด้วย

  • สนับสนุน CDS (Class Data Sharing) ทำให้ start เร็วขึ้น และใช้งาน memory น้อยลง
  • ปรับปรุงเรื่อง observability เช่นเพิ่ม @SpanTag เข้ามา สำหรับ tracing แบบง่าย ๆ
  • เพิ่ม SBOM (Software Bill of Materials) actuator endpoint เข้ามา ช่วยให้เราเห็นว่าระบบงานใช้ library อะไรบ้าง
  • ทำการเปลี่ยนแปลงเอกสารใหม่

ความสามารถที่น่าสนใจมาก ๆ คือ CDS (Class Data Sharing)

เป็น feature ใน JVM ที่มีมาตั้งแต่ Java 12
โดยจะทำการสร้างไฟล์สำหรับ load standard library ที่จะใช้งานขึ้นมา
จากนั้นในการใช้งานก็ load จากไฟล์เดียวเท่านั้น
ไม่ต้องไป load แบบ class-by-class เหมือนเดิม
รวมทั้งถ้า class ไหนใช้ซ้ำก็ใช้ที่เดียวกันไปเลย ไม่ต้อง load ใหม่
จึงช่วยลดการใช้งาน memory และ load เร็วขึ้นนั่นเอง

ดังนั้นมาลองดูกันว่า เร็วขึ้น และ ใช้ memory น้อยลงจริงไหมกัน ?

เป็นการทดลองใช้งาน Spring 3.3.0 กับ 3.2.6 บน Java 22

ก่อนอื่นทำการ print การใช้งาน memory ของ app มาก่อน

[gist id="0e519e39ed0766084cb4e194c9ab6ff7" file="MemoryUsageLogger.java"]

จากนั้นสร้าง JAR fil แบบปกติ

[gist id="0e519e39ed0766084cb4e194c9ab6ff7" file="1.txt"]

ต่อจากนั้นทำการสร้าง CDS JAR file และลองใช้งาน

[gist id="0e519e39ed0766084cb4e194c9ab6ff7" file="2.txt"]

ผลออกมาไม่ต่างมากเท่าไร ถ้าระบบใหญ่ ๆ น่าจะเห็นชัดมากขึ้น

อีกเรื่องคือ การเพิ่ม SBOM endpoint เข้ามา ทำงานกับ CycloneDX

สามารถ config เพิ่มมาได้ดังนี้

[gist id="0e519e39ed0766084cb4e194c9ab6ff7" file="pom.xml"]

จากนั้นเปิด management web endpoint ใน Actuator ดูได้เลย

  • http://localhost:8080/actuator/sbom/application

ตัวอย่างเช่น

[gist id="0e519e39ed0766084cb4e194c9ab6ff7" file="sbom.json"]

ช่วยให้เราเอาไป analyze ต่าง ๆ ได้ง่าย เช่น Security เป็นต้น

Upgrade กันได้แล้วนะ ตอนนี้ Spring Boot 3.1 ไม่ support แล้วนะครับ !!


Viewing all articles
Browse latest Browse all 1997

Trending Articles