ต่อจากที่แนะนำ Spring Modulith ไปแล้ว
มาลองลงมือเขียน code ตามแนวทางนี้หน่อยว่าเป็นอย่างไร
มีเครื่องมืออะไรที่น่าสนใจบ้าง

ขั้นตอนที่ 1 สร้าง Project ด้วย Apache Maven Project

โดยทำการเพิ่ม library ของ Spring Modulith ในไฟล์ pom.xml ดังนี้

ขั้นตอนที่ 2 ทำการออกแบบสิ่งที่ต้องการ

จะสร้างมา 3 module โดยที่ Module 1 เรียกใช้งาน Module 2 และ 3
โดยแยก package ตามแต่ละ module ไป
ใน Spring Modulith จะทำการ injection ผ่าน constructor ดังนี้

ขั้นตอนที่ 3 ทำการเขียน test สำหรับ Spring Modulith

จากนั้นทำการ run test ผลที่ได้ตามมา
คือ UML diagram ของทั้ง project และแยกแต่ละ module
โดยสามารถเปิดดูได้จาก PlantUML

Diagram ของแต่ละ Module

หรือสร้าง diagram แบบอื่น ๆ ได้อีก ดูที่ Document
เป็นสิ่งที่ดีมาก ๆ ช่วยให้เราสร้างเอกสารของระบบงานแบบ up-to-date อยู่ตลอดเวลา

ในแต่ละ module สามารถมี internal class หรือใช้เฉพาะภายใน module
สามารถสร้าง class/interface ใน package ย่อยชื่อว่า internal

ขั้นตอนที่ 4 สามารถดู tracing ของการเรียกระหว่าง module ผ่าน Zipkin ได้ด้วย

ต้องทำการเพิ่ม library ในไฟล์ pom.xml
ประกอบไปด้วย

  • Zipkin
  • Tracing
  • Actuator
  • Observability

ดังนี้

จากนั้นทำการ run และดูผลใน Zipkin จะเป็นดังนี้

เพียงเท่านี้ก็เริ่มใช้งานแบบง่าย ๆ ได้แล้ว
ลองเล่นกันดูครับ
ขอให้สนุกกับการ coding !!

ตัวอย่างของ source code