
Estimated reading time
3 minute
Note1: ก่อนมาอ่านบทความนี้อยากให้คุ้นๆคำว่า Instance ใน Java ก่อนนะ
Note2: Spring Framework ที่อธิบายในบทความนี้เป็นเวอร์ชัน 6.x
Spring Framework หมายถึงไร!
Spring Framework ถูกสร้างขึ้นมาเพื่อให้เขียนภาษา Java ได้เหมือนกับ SAP
นั่นคือเขียน Code ไว้ก่อน แล้วค่อยตั้งค่ารายละเอียดต่างๆทีหลัง (Configuration)
ใครยังไม่เข้าใจประโยคด้านบน กดเข้ามาอ่านที่บทความนี้ก่อนได้เลย
โดย Spring Framework มักจะใช้เขียนใน Software ขนาดใหญ่ (Enterprise)
ซึ่งบทความนี้จะอธิบายแนวคิดหลักของ Spring Framework คือ IoC และ AOP มา!
Inversion of Control (IoC)
Spring Bean
ใน Spring จะเรียก Instance ว่า Spring Bean
การทำ Inversion of Control หมายถึง การที่ให้ Spring Framework เป็นตัวจัดการและสร้าง Spring Bean แทนที่เราจะสร้างมันเองทุกครั้งที่ต้องการใช้งาน
ซึ่งการทำ Inversion of Control จะใช้ Spring Container เป็นตัวควบคุมการทำงานของ Spring Bean
แวะสรุปกันก่อน Spring Bean คือ Instance ที่ถูกบริหารจัดการด้วย Spring Container
หรือ Spring Bean ก็คือ Manageable Instance นั่นเอง
Spring Container
Spring Container มีหน้าที่อยู่ 3 อย่าง
- สร้าง Spring Bean (สร้าง Instance) มี 3 วิธี
- สร้างแบบ Manual ด้วย Function ชื่อ
registerBean() - สร้างจากไฟล์ XML
- สร้างผ่านการใช้ Annotation เช่น
@Bean
- สร้างแบบ Manual ด้วย Function ชื่อ
- เก็บข้อมูลของ Spring Bean
- ค้นหา Spring Bean และส่ง Address ของ Spring Bean ไปให้ผู้เรียก
| Address | Type (Class) | Name | … |
| 0a1111000 | Coffee | c1 | … |
| 0b1111000 | Payment | p1 | … |
ซึ่ง Spring Container จะแบ่งประเภทได้ตามการสร้าง Spring Bean นั่นเองง

สรุปสั้นๆ IoC คือ การที่ไม่ต้องสร้าง Instance ตัวใหม่ แต่ใช้วิธีค้นหามาใช้เลย
Aspect-Oriented Programming (AOP)
AOP หรือ Aspect-Oriented Programming เป็นความสามารถในการแทรก Function การทำงานเข้าไปใน Software เดิม ดูรูปดีกว่า

ก็คือเป็นการแทรก Function เข้าไปทำงานร่วมกับ Code เดิม
เพราะ Concept การทำงานของ Spring Framework คือ เขียน Code เอาไว้ก่อน แล้วค่อยตั้งค่ารายละเอียดต่างๆให้เข้ากับ Business Logic ของแต่ละที่
ซึ่ง Business Logic ของแต่ละที่ ก็จะมีกระบวนการทำงานที่ไม่เหมือนกัน
สรุปสั้นๆ AOP คือ การปรับเปลี่ยนการทำงานระดับ Subprogram
สรุป
การเขียน Code แบบ Java และ Spring Framework มีแนวคิดที่ต่างกัน
การเขียน Code แบบ Java ถ้าต้องการจะใช้งาน Instance ตรงไหน ก็จะสร้าง Instance ตรงนั้น แล้วตั้งค่ารายละเอียดต่างๆตรงนั้นเลย
การเขียน Code แบบ Spring จะสร้าง Instance ไว้ก่อนตั้งแต่เริ่มต้น Program และตั้งค่ารายละเอียดไว้ก่อนเลย เมื่อไหร่ที่ต้องการใช้ ก็ค่อยค้นหา Instance ตัวนั้นมาใช้งาน โดยเรียกว่าเป็นการทำ Inversion of Control นั่นเองงง


Leave a reply to คิดชื่อไม่ออก เอาเป็นว่าจะสอน Spring Boot – Kornkan Website Cancel reply