Spring, Struts, Hibernate, JavaServer Faces, Tapestry แตกต่างกันอย่างไร


199

ฉันขอทราบความแตกต่างระหว่าง: -

  1. ฤดูใบไม้ผลิ
  2. Struts
  3. Struts 2
  4. Hibernate
  5. JavaServer Faces
  6. JavaServer Pages
  7. พรม

เทคโนโลยี / กรอบเหล่านี้เสริมซึ่งกันและกันหรือไม่? หรือพวกเขาเป็นทางเลือกซึ่งกันและกัน (หลังจากฉันใช้หนึ่งในนั้นแล้วฉันไม่จำเป็นต้องใช้อีก)

ขอบคุณ

คำตอบ:


267
  1. ฤดูใบไม้ผลิเป็นภาชนะ IoC (อย่างน้อยแกนกลางของฤดูใบไม้ผลิ) และใช้ในการเดินสายสิ่งของโดยใช้การฉีดพึ่งพา Spring ให้บริการเพิ่มเติมเช่นการจัดการธุรกรรมและการรวมเทคโนโลยีอื่น ๆ ที่ไร้รอยต่อ
  2. Struts เป็นเฟรมเวิร์กการนำเสนอที่อิงแอ็คชัน(แต่ไม่ใช้เพื่อการพัฒนาใหม่)
  3. Struts 2 เป็นเฟรมเวิร์กการนำเสนอแบบอิงแอ็คชันเวอร์ชัน 2 ข้างต้น (สร้างจากการผสานของ WebWork with Struts)
  4. Hibernate เป็นเครื่องมือการทำแผนที่วัตถุสัมพันธ์เป็นกรอบการติดตา
  5. JavaServer Faces เป็นส่วนประกอบตามกรอบการนำเสนอ
  6. JavaServer Pages เป็นเทคโนโลยีมุมมองที่ใช้โดยกรอบงานนำเสนอที่กล่าวถึงทั้งหมดสำหรับมุมมอง
  7. พรมเป็นอีกหนึ่งองค์ประกอบตามกรอบการนำเสนอ

ดังนั้นเพื่อสรุป:

  • Struts 2, JSF, พรม (และประตูฤดูใบไม้ผลิ MVC, ลายเส้น) เป็นกรอบการนำเสนอ หากคุณใช้หนึ่งในนั้นคุณไม่ได้ใช้อีก
  • Hibernate เป็นเฟรมเวิร์กการคงอยู่และใช้เพื่อคงอยู่วัตถุ Java ในฐานข้อมูลเชิงสัมพันธ์
  • สปริงสามารถใช้เชื่อมโยงทั้งหมดนี้เข้าด้วยกันและเพื่อจัดการธุรกรรมที่มีการเปิดเผย

ฉันไม่ต้องการทำให้เกิดความสับสนมากขึ้น แต่โปรดทราบว่า Java EE 6 นำเสนอกรอบงานที่ทันสมัยเป็นมาตรฐานและดีมาก: JSF 2.0 และ Facelets สำหรับงานนำเสนอ, JPA 2.0 สำหรับการคงอยู่, การพึ่งพาการพึ่งพา ฯลฯ การพัฒนาใหม่นี้เป็นตัวเลือกที่ร้ายแรง IMO , Java EE 6 เป็นกองที่ดี

ดูสิ่งนี้ด้วย


2
ฉันต้องการชี้ให้เห็นว่าในบริบทการเปรียบเทียบแบบนี้บางคนใช้คำว่า Spring เพื่ออ้างถึงเฟรมเวิร์ก MVC ของตัวเอง (ซึ่งดีกว่า IMuts Struts มาก)
MetroidFan2002

อธิบายได้อย่างดี แต่ก็ยังเป็นเรื่องเทคนิคเกินไป ฉันแนะนำให้คุณอธิบายด้วยคำธรรมดา อย่างไรก็ตามลิงก์ท้ายที่สุดทำเช่นนั้น
noob

คำตอบคือจุดเริ่มต้นที่ดีแน่นอน แต่สามารถปรับปรุงได้โดยอธิบายแนวคิดหลักที่แนะนำ (ตามกรอบโครงสร้างที่อ้างอิงกับคอมโพเนนต์, คอนเทนเนอร์ IoC, การนำเสนอเฟรมเวิร์กกับการคงอยู่ ... ) เนื่องจากมันยืนอยู่ตอนนี้ googeling แต่ก็ยังเป็นคำตอบที่ดีและเป็นจุดเริ่มต้นที่ดี! upvote
Wouter

19

โดยทั่วไป ...

Hibernate ใช้สำหรับจัดการการดำเนินงานฐานข้อมูล มีชุดฟังก์ชันยูทิลิตี้ฐานข้อมูลจำนวนมากซึ่งจะช่วยลดจำนวนบรรทัดรหัสของคุณ โดยเฉพาะอย่างยิ่งคุณต้องอ่าน @ คำเตือนของการจำศีล มันเป็นกรอบ ORM และชั้นการคงอยู่

Spring นำเสนอชุดกลไกการฉีดที่หลากหลาย ปัจจุบันสปริงเป็นที่รู้จักกันดี คุณต้องอ่านเกี่ยวกับ Spring AOP ด้วย มีสะพานเชื่อมระหว่าง Struts และ Hibernate สปริงส่วนใหญ่มียูทิลิตีประเภทนี้

Struts2 จัดเตรียมการโปรแกรมมิงตามการดำเนินการ มีชุด Struts แท็กมากมาย Struts พิสูจน์การเขียนโปรแกรมตามการกระทำดังนั้นคุณต้องรักษาการควบคุมที่เกี่ยวข้องทั้งหมดในมุมมองของคุณ

นอกจากนี้ Tapestry เป็นเฟรมเวิร์กที่แตกต่างกันสำหรับ Java ซึ่งคุณต้องจัดการเท่านั้น.tml(ไฟล์เทมเพลต) คุณต้องสร้างไฟล์หลักสองไฟล์สำหรับคลาสใดก็ได้ หนึ่งคือคลาส JAVA และอีกอันคือเทมเพลต ชื่อทั้งสองเหมือนกัน Tapestry เรียกคลาสที่เกี่ยวข้องโดยอัตโนมัติ


7

คุณสามารถมองเห็นภาพรวมและการจัดอันดับสำหรับตัวคุณเองที่นี่ Hibernate เป็น ORM ดังนั้นคุณสามารถใช้ struts + Hiberante หรือ spring + hibernate เพื่อสร้างเว็บแอป กรอบงานเว็บที่แตกต่างกันและอีกมากมายเป็นทางเลือกซึ่งกันและกัน


4

Spring เป็นกรอบแอปพลิเคชั่นที่เกี่ยวข้องกับ IOC (Inversion of Control)

Struts 2 เป็นเฟรมเวิร์ก MVC ของเว็บแอ็พพลิเคชันที่เกี่ยวข้องกับแอ็คชัน

Hibernate เป็น ORM (การทำแผนที่วัตถุสัมพันธ์) ที่เกี่ยวข้องกับข้อมูลถาวร


3

ในระยะสั้น

Strutsสำหรับการพัฒนา Front-end ของเว็บไซต์

Hibernate ใช้สำหรับการพัฒนาเว็บไซต์ส่วนหลัง

Spring ใช้สำหรับการพัฒนาเว็บไซต์ที่มี Spring MVC (Model-View-Controller) สำหรับ Front-end ORM, JDBC สำหรับ Data Access / Integration (แบ็กเอนด์) ฯลฯ


2

ในโหมดไฮเบอร์เนตคุณไม่จำเป็นต้องกังวลเกี่ยวกับวิธีการสร้างตารางใน SQL และคุณไม่จำเป็นต้องจำการเชื่อมต่อคำสั่งที่เตรียมไว้เช่นข้อมูลนั้นจะยังคงอยู่ในฐานข้อมูล ดังนั้นโดยทั่วไปมันทำให้ชีวิตของนักพัฒนาเป็นเรื่องง่าย


2

ฤดูใบไม้ผลิมีน้ำหนักเบาและกรอบโอเพนซอร์สที่สร้างขึ้นโดย Rod Johnsonในปี 2003 ฤดูใบไม้ผลิเป็นกรอบที่สมบูรณ์และโครงสร้างแบบแยกส่วนกรอบ Spring สามารถใช้สำหรับการใช้งานเลเยอร์ทั้งหมดสำหรับแอปพลิเคชันแบบเรียลไทม์หรือฤดูใบไม้ผลิ ของแอปพลิเคชันตามเวลาจริง

Strutsเป็นเฟรมเวิร์กแอปพลิเคชันเว็บโอเพนซอร์สสำหรับการพัฒนาเว็บแอปพลิเคชัน Java EE มันใช้และขยาย Java Servlet API เพื่อส่งเสริมให้นักพัฒนานำสถาปัตยกรรมแบบจำลองมุมมอง - ตัวควบคุม (MVC) มันถูกสร้างขึ้นครั้งแรกโดย Craig McClanahanและบริจาคให้กับมูลนิธิ Apache ในเดือนพฤษภาคม 2000

รายการด้านล่างคือแผนภูมิเปรียบเทียบความแตกต่างระหว่าง Spring และ Strut Framework

ป้อนคำอธิบายรูปภาพที่นี่


0

หน้าและส่วนประกอบของTapestryนั้นเป็นของธรรมดา (Object Old Java แบบธรรมดา)ของPOJOซึ่งประกอบด้วย getters และ setters เพื่อให้เข้าถึงคุณลักษณะภาษา Java ได้ง่าย


0

ความแตกต่างระหว่างSpring , StrutsและHibernateมีดังต่อไปนี้:

  1. Spring เป็น Application Frameworkแต่ Struts และ Hibernate ไม่ใช่
  2. สปริงและไฮเบอร์เนตมีน้ำหนักเบาแต่ Struts 2 ไม่ใช่
  3. Spring และ Hibernate มีสถาปัตยกรรมแบบเลเยอร์แต่ Struts 2 ไม่มี
  4. สปริงและไฮเบอร์เนตรองรับข้อต่อหลวมแต่ Struts 2 ไม่ได้
  5. Struts 2 และ Hibernate มีไลบรารีแท็กแต่ Spring ไม่มี
  6. Spring และ Hibernate มีการรวมเข้ากับเทคโนโลยี ORM ได้ง่ายแต่ Struts ไม่มี
  7. Struts 2 มีการผสมผสานที่ง่ายกับเทคโนโลยีฝั่งไคลเอ็นต์แต่ Spring และ Hibernate ไม่มี
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.