Spring Framework คืออะไร กดเข้ามาอ่านสิ

13 Jul 2024 · 2 minute read
Cover image for Spring Framework คืออะไร กดเข้ามาอ่านสิ
Table of Contents
  1. Spring Framework หมายถึงไร!
  2. Inversion of Control (IoC)
    1. Spring Bean
    2. Spring Container
  3. Aspect-Oriented Programming (AOP)
  4. สรุป

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 อย่าง

  1. สร้าง Spring Bean (สร้าง Instance) มี 3 วิธี

    • สร้างแบบ Manual ด้วย Function ชื่อ registerBean()

    • สร้างจากไฟล์ XML

    • สร้างผ่านการใช้ Annotation เช่น @Bean

  2. เก็บข้อมูลของ Spring Bean

  3. ค้นหา Spring Bean และส่ง Address ของ Spring Bean ไปให้ผู้เรียก

Address
Type (Class)
Name
0a1111000Coffeec1
0b1111000Paymentp1

ซึ่ง 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 นั่นเองงง