วันอังคารที่ 23 กรกฎาคม พ.ศ. 2562

เมื่อก่อนนั้น framework ของ java ที่ใช้กันอยู่นั้นเช่น Struts ซึ่งจะผูกพันกับ Enterprise Java Bean(EJB) มากเกินไป ซึ่งเมื่อพัฒนาไปเรื่อยๆ ejb จะทวีความซับซ้อนขึ้นเรื่อยๆ ในขณะที่ Spring Framework นั้นลดความซับซ้อนในการพัฒนา application ลง ในบทความนี้ผมจะอธิบายโครงสร้างของ Spring Framework และจะนำเสนอการพัฒนา application ด้วย Spring Framework  
  
 Spring MVC Framework คือ Framework ในการสร้างเว็บ ที่รองรับแนวคิดแบบ MVC (Model , View ,Controller) โดยหลักการทำงานของตัว Spring MVC Framework จะออกแบบให้การทำงานทุกอย่างขึ้นอยู่กับ Servlet ที่ชื่อว่า DispatcherServlet

     Spring MVC Framework มีไว้เพื่อออกแบบโครงสร้างการเก็บชิ้นส่วนของเว็บ เช่น พวก หน้าเว็บ (ไฟล์ html, ไฟล์ jsp ) ไฟล์ CSS หรือ ไฟล์ Script ต่างๆ ไว้อย่างชัดเจน เช่น หน้า ส่วน Controller ต้องอยู่ภายใน โฟเดอร์ src เท่านั้น ซึ่งทำให้สะดวกต่อการค้นหา แก้ไข เพิ่มเติม หรือ ลบทิ้ง
Spring MVC Framework มีการกำหนด Form การเขียนเว็บในแต่ละส่วน ไม่ว่าจะเป็นส่วน Request , Respond หรือ Controller ต่างๆ ทำให้ไม่ว่าจะเป็น Developer คนไหนที่เข้ามาแก้ไขไฟล์ก็สามารถเข้าใจ Code ที่เขียนไว้ได้ง่ายๆ และยังมีตัว Library ที่ไว้ช่วยในการเขียน เพื่อให้ง่ายต่อการทำงานของ Developer อีกด้วย

Spring Framework Architecture

จากรูป Spring Framework จะพบว่า Spring MVC (ซึ่งเป็นที่นิยมใช้ในการพัฒนา web application) เป็นเพียงหนึ่งในหลายๆ Module ของ Spring Framework

เครื่องมือที่ใช้ในการพัฒนา
1.JDK 1.5 ขึ้นไป หลังๆมาใช้ 1.8 ขึ้นไป
2.Web Server ยกตัวอย่างเช่น Apache Tomcat , Glassfish, JBoss, Websphere, Weblogic 
3.Eclipse IDE for Enterprise Java Developers
4.Spring 3.0 MVC JAR 

หลักการทำงาน
1.Client ส่ง Request ไปยัง Web Container ในรูปแบบของ HTTP Request
2."Front Controller" (DispatcherServlet) รับ request ที่เข้ามา และค้นหา Controller ดูจาก Handler Mappings
3. DispatcherServlet ส่ง request ให้ Controller ตัวอื่นทำงานต่อ โดยดูจาก ค่าที่ Handler Mappingsไว้
4.Controller จะทำงานตาม request ที่ส่งเข้ามา และส่งผลลัพธ์ออกมาเป็น Model และส่งค่า Model นี่ไปยัง หน้า View ด้วย ModelAndView instance โดยผ่านตัว Front Controller
5.Front Controller จะทำหน้าที่จัดการ ปัญหาที่อาจเกิดขึ้นในการแสดงผล หน้าView โดยอาศัยตัว View Resolver
6.ทำการเลือก view ที่จะส่งกลับไปยัง client