หลังจากที่ลองเล่น และ ศึกษาทำความเข้าใจกับ Spring Modulith มาสักพัก
จึงทำการสรุปการศึกษาไว้นิดหน่อย
ว่ามันคืออะไร ทำมาเพื่ออะไร มีเป้าหมายอย่างไรบ้าง
มาเริ่มกันเลย
Spring Modulith เป็น project ทดลอง
สำหรับการวางโครงสร้างที่ดีขึ้นสำหรับ Spring Boot 3
โดยเน้นที่การวางระบบ modular ที่ดี สำหรับระบบแบบ monolithic นั่นเอง
จะมี class และ annotation ใหม่ ๆ มาให้ใช้งาน
ที่ต้องเข้าใจก่อนคือ ไม่ใช้จัดการตาม Java Platform Module System (JPMS) นะ
แต่ใช้การ map java package ปกติ
กับใช้การส่ง event ใน Apring application สำหรับการติดต่อสื่อสารระหว่าง module
โดย event จะจัดเก็บใน Event Publication Registry
ซึ่งจะการันตีว่า event จะส่งถึง module แลายทางเสมอ
ช่วยทำให้แยกการทำงานของแต่ละ module ได้ง่ายขึ้น
รวมทั้งช่วยให้ load และ ทดสอบแต่ละ module ได้ง่ายขึ้น
ไม่ต้อง load class ในทุก ๆ module ขึ้นมา
Software Requirements
- Java 17
- Spring Framework 6
- Jakarta EE 9
- Spring Boot 3
ปล. ส่วน project Moduliths นี้เลิกทำไปแล้วนะ
ความพยายามของ project นี้
เพื่อช่วยให้ในระบบแบบ Monolithic นั้นจัดการ module ได้ดีขึ้น
ทำให้เกิด loose coupling ได้มากที่สุด
นั่นจะเอื้อหรือง่ายต่อการแยกไปคนละ service
ก่อนที่จะแยกเป็น service เล็ก ๆ เราทำการจัดการ module ได้ดีหรือยัง
ถ้าไม่แล้ว แยกก็ฉิบหายหนักกว่าเดิมไหม !!
ไว้เรามาดูตัวอย่างในการใช้งานใน blog ต่อไป