Struts vs Spring MVC
Το Το πλαίσιο Struts είναι ένα από τα αρχικά πλαίσια εφαρμογών Ιστού για την ανάπτυξη εφαρμογών ιστού Java EE. Το Spring είναι ένα πλαίσιο εφαρμογών ανοιχτού κώδικα. Λίγο καιρό μετά την εισαγωγή του πλαισίου Spring, οι προγραμματιστές πρόσθεσαν ένα πλαίσιο 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 και διατηρήθηκε στο πλαίσιο του Jakarta Project του Apache Software Foundation. Η τρέχουσα σταθερή του έκδοση είναι η έκδοση 2.2.3, η οποία κυκλοφόρησε τον Μάιο του 2011. Κυκλοφορεί με την άδεια Apache 2.0. Το πλαίσιο Struts ονομάζεται πλαίσιο που βασίζεται σε αιτήματα και αποτελείται από τρία κύρια στοιχεία: έναν χειριστή αιτήματος, έναν χειριστή απόκρισης και μια βιβλιοθήκη ετικετών. Το τυπικό URI (Uniform Resource Identifier) αντιστοιχίζεται σε ένα πρόγραμμα χειρισμού αιτημάτων. Ο χειριστής απόκρισης είναι υπεύθυνος για τη μεταφορά του ελέγχου. Για τη δημιουργία διαδραστικών εφαρμογών με φόρμες, μπορούν να χρησιμοποιηθούν οι δυνατότητες που προσφέρει η βιβλιοθήκη ετικετών. Τα Struts υποστηρίζουν εφαρμογές REST και διάφορες τεχνολογίες όπως SOAP, AJAX κ.λπ.
Τι είναι το Spring MVC;
Το Spring είναι ένα πλαίσιο εφαρμογών ανοιχτού κώδικα. Αναπτύχθηκε από τον Rod Johnson, και η πρώτη έκδοση κυκλοφόρησε το 2004. Το Spring 3.0.5 είναι η τρέχουσα έκδοση του πλαισίου Spring. Διατίθεται με άδεια χρήσης Apache 2.0. Οποιαδήποτε εφαρμογή Java μπορεί να χρησιμοποιήσει τις βασικές δυνατότητες του πλαισίου Spring. Υπάρχουν αρκετές ενότητες στο Spring Framework και το MVC είναι ένα από αυτά. Το πλαίσιο Spring MVC δεν ήταν μέρος του αρχικού τους σχεδίου. Στην πραγματικότητα, ο λόγος που οι προγραμματιστές Spring δημιούργησαν το δικό τους πλαίσιο MVC ήταν για να δώσουν λύσεις σε αυτά που έδειξαν ως ελλείψεις στα Struts (έκδοση 1) και άλλα παρόμοια πλαίσια. Συγκεκριμένα, είπαν ότι ήθελαν να αντιμετωπίσουν την έλλειψη διαχωρισμού μεταξύ του επιπέδου παρουσίασης, του επιπέδου διαχείρισης αιτημάτων και του μοντέλου. Το Spring MVC είναι επίσης ένα πλαίσιο εφαρμογών ιστού που βασίζεται σε αιτήματα.
Ποια είναι η διαφορά μεταξύ Struts και Spring MVC;
Αν και το Spring MVC και το Struts είναι δύο δημοφιλή πλαίσια εφαρμογών ιστού που χρησιμοποιούνται για την ανάπτυξη εφαρμογών web 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 τρίτων).
Τελικά, και τα δύο θεωρούνται πολύ ώριμα πλαίσια και η επιλογή μεταξύ των δύο εξαρτάται από την προσωπική προτίμηση. Είναι σημαντικό να σημειωθεί εδώ ότι εάν υπάρχουν αρνητικά συναισθήματα για τους αντηρίδες, αυτά οφείλονται μόνο στις ελλείψεις που βρέθηκαν στην έκδοση 1 του Struts (η οποία θεωρείται πλέον ξεπερασμένη).