ความแตกต่างระหว่าง Struts และ Spring MVC

Anonim

Struts กับ Spring MVC

Struts framework เป็นหนึ่งในเว็บแอ็พพลิเคชันเว็บแอ็พพลิเคชันที่พัฒนาขึ้นครั้งแรกในเว็บ Java EE Spring เป็นกรอบแอพพลิเคชันโอเพ่นซอร์ส บางเวลาหลังจากการแนะนำ Spring framework นักพัฒนาซอฟต์แวร์ได้เพิ่มกรอบงาน MVC ลงในกรอบ Spring โดยหวังว่าจะสามารถจัดการกับข้อ จำกัด บางประการที่พวกเขารับได้ใน Struts แต่อีกไม่กี่ปีต่อมา Struts2 (หรือ Struts เวอร์ชัน 2) ก็มาถึงแล้วและกรอบการทำงานของแอ็พพลิเคชันเว็บที่แตกต่างไปจากเดิมอย่างสมบูรณ์ ขณะนี้ทั้ง Struts และ Spring MVC ใช้กันอย่างแพร่หลายในการพัฒนาแอพพลิเคชัน Java EE ในโลก

Struts คืออะไร?

Struts (หรือที่เรียกว่า Apache Struts) เป็นกรอบโอเพ่นซอร์สข้ามแพลตฟอร์มที่เขียนขึ้นใน Java ซึ่งมีไว้สำหรับการพัฒนาแอ็พพลิเคชันเว็บ Java EE Struts สนับสนุนการใช้สถาปัตยกรรมของ MVC (Model-View-Controller) เป็นส่วนขยายของ Java Servlet API Craig McClanahan เป็นผู้สร้าง Struts เดิม เดิมชื่อ Jakaratha Struts และได้รับการดูแลภายใต้โครงการจาการ์ตาของ Apache Software Foundation รุ่นที่มีเสถียรภาพในปัจจุบันคือรุ่น 2 2. 3 ซึ่งออกจำหน่ายในเดือนพฤษภาคม พ.ศ. 2554 ปล่อยออกมาภายใต้ Apache License 2 0. กรอบงาน Struts เรียกว่ากรอบการทำงานตามคำขอ (request-based framework) และประกอบด้วยส่วนประกอบหลัก 3 ส่วนคือ ตัวจัดการคำสั่ง, ตัวจัดการการตอบสนองและไลบรารีแท็ก URI มาตรฐาน (Uniform Resource Identifier) ​​ถูกแม็พกับตัวจัดการคำร้องขอ ตัวจัดการการตอบสนองมีหน้าที่ในการถ่ายโอนการควบคุม ในการสร้างแอ็พพลิเคชันแบบโต้ตอบกับแบบฟอร์มคุณสามารถใช้คุณลักษณะต่างๆที่มีให้โดยไลบรารีแท็ก Struts สนับสนุนแอ็พพลิเคชัน REST และเทคโนโลยีต่างๆเช่น SOAP, AJAX ฯลฯ

Spring MVC คืออะไร?

ฤดูใบไม้ผลิเป็นกรอบแอ็พพลิเคชันโอเพ่นซอร์ส ได้รับการพัฒนาโดย Rod Johnson, และรุ่นแรกได้รับการปล่อยตัวในปีพ. ศ. 2547 Spring 3 0. 5 เป็นเวอร์ชันปัจจุบันของ Spring framework มีใบอนุญาตภายใต้ใบอนุญาต Apache 2 0 แอปพลิเคชัน Java สามารถใช้คุณลักษณะหลักของกรอบ Spring ได้ มีโมดูลหลายโมดูลใน Spring framework และ MVC เป็นหนึ่งในนั้น กรอบ Spring MVC ไม่ใช่ส่วนหนึ่งของแผนเดิม ในความเป็นจริงเหตุผลที่นักพัฒนาซอฟต์แวร์ Spring พัฒนากรอบ MVC ของตนเองเพื่อให้คำตอบกับสิ่งที่พวกเขาแสดงให้เห็นว่าเป็นข้อบกพร่องใน Struts (เวอร์ชัน 1) และกรอบที่คล้ายคลึงกันอื่น ๆ โดยเฉพาะอย่างยิ่งพวกเขากล่าวว่าพวกเขาต้องการที่จะแก้ปัญหาการขาดการแบ่งแยกระหว่างเลเยอร์การนำเสนอชั้นการจัดการคำขอและโมเดล Spring MVC เป็นเว็บแอ็พพลิเคชันตามคำขอ

ความแตกต่างระหว่าง Struts กับ Spring MVC คืออะไร?

ถึงแม้ว่า Spring MVC และ Struts จะเป็นกรอบแอ็พพลิเคชันเว็บที่นิยมใช้สำหรับการพัฒนาแอ็พพลิเคชันเว็บ Java EE สองเว็บมีความแตกต่างกันในความเป็นจริง Spring MVC ได้รับการพัฒนาเพื่อ จำกัด ข้อ จำกัด ของ Struts (เวอร์ชัน 1) แต่ Struts2 เป็นเฟิร์มที่มีการปรับปรุงสูงกว่าเวอร์ชัน 1 (พวกเขาไม่ได้แชร์ฐานโค้ดเดียวกัน) ดังนั้น Spring MVC และ Structs2 จึงมีความสามารถในการเปรียบเทียบได้มาก

ข้อดีหลักอย่างหนึ่งของ Spring MVC คือสามารถรวมเข้ากับตัวเลือกการดูได้หลายแบบเช่น JSP / JSTL, Tiles, FreeMaker, Excel, PDF และ JSON แต่แตกต่างจาก Struts Spring MVC ไม่มีการสนับสนุน AJAX ในตัว (ต้องใช้ไลบรารี AJAX ของ บริษัท อื่น)

ในท้ายที่สุดทั้งคู่ถือว่าเป็นผู้ใหญ่แล้วและเลือกระหว่างสองแบบนี้ลงมาตามความต้องการส่วนบุคคล เป็นสิ่งสำคัญที่จะต้องทราบที่นี่ว่าถ้ามีความรู้สึกเชิงลบใด ๆ ต่อ struts พวกเขาเป็นเพียงเนื่องจากข้อบกพร่องที่พบใน Struts รุ่น 1 (ซึ่งขณะนี้ถือว่าล้าสมัย)