Jouset vs. kevään MVC
Struts-kehys on yksi ensimmäisistä verkkosovelluskehyksistä Java EE -verkkosovellusten kehittämiseksi. Kevät on avoimen lähdekoodin sovelluskehys. Jonkin ajan kuluttua kevään kehyksen käyttöönoton jälkeen kehittäjät lisäsivät MVC-kehyksen kevään kehykseen toivoen käsittelevänsä joitain Strutsissa havaitsemiaan rajoituksia. Mutta muutama vuosi myöhemmin Struts2 (tai Struts-versio 2) saapui, ja se oli täysin erilainen ja erittäin parannettu verkkosovelluskehys. Sekä Strutsia että Spring MVC: tä käytetään nyt erittäin voimakkaasti Java EE -sovellusten kehittämiseen maailmassa.
Mikä on Struts?
Struts (tunnetaan myös nimellä Apache Struts) on Java-kielellä kirjoitettu alustojen välinen avoimen lähdekoodin kehys, joka on tarkoitettu Java EE -verkkosovellusten kehittämiseen. Struts kannustaa käyttämään MVC (Model-View-Controller) -arkkitehtuuria. Se on Java Servlet -sovellusliittymän laajennus. Craig McClanahan on Strutsin alkuperäinen luoja. Alun perin se tunnettiin nimellä Jakaratha Struts, ja sitä ylläpidettiin Apache Software Foundation -säätiön Jakarta-projektin alla. Sen nykyinen vakaa julkaisu on versio 2.2.3, joka julkaistiin toukokuussa 2011. Se julkaistaan Apache License 2.0 -lisenssillä. Struts-kehystä kutsutaan pyyntöpohjaiseksi kehykseksi, ja se koostuu kolmesta pääkomponentista: pyynnön käsittelijä, vastauksen käsittelijä ja tagikirjasto. Tavallinen URI (Uniform Resource Identifier) on yhdistetty pyynnön käsittelijään. Vastekäsittelijä on vastuussa valvonnan siirtämisestä. Luomalla vuorovaikutteisia sovelluksia lomakkeilla voidaan käyttää tunnistekirjaston tarjoamia ominaisuuksia. Struts tukee REST-sovelluksia ja erilaisia tekniikoita, kuten SOAP, AJAX jne.
Mikä on Spring MVC?
Kevät on avoimen lähdekoodin sovelluskehys. Sen on kehittänyt Rod Johnson, ja ensimmäinen versio julkaistiin vuonna 2004. Kevät 3.0.5 on kevään kehyksen nykyinen versio. Se on lisensoitu Apache 2.0 -lisenssillä. Mikä tahansa Java-sovellus voi käyttää Spring-kehyksen ydinominaisuuksia. Spring-kehyksessä on useita moduuleja, ja MVC on yksi niistä. Kevään MVC-kehys ei ollut osa heidän alkuperäistä suunnitelmaansa. Itse asiassa syy siihen, että kevään kehittäjät keksivät oman MVC-kehyksensä, oli tarjota ratkaisuja Strutsin (versio 1) ja muiden vastaavien kehysten puutteisiin. Erityisesti he sanoivat haluavansa puuttua esityskerroksen, pyyntöjen käsittelykerroksen ja mallin väliseen eroon. Spring MVC on myös pyyntöpohjainen verkkosovelluskehys.
Mitä eroa on joustimilla ja jousen MVC: llä?
Vaikka Spring MVC ja Struts ovat kaksi suosittua verkkosovelluskehystä, joita käytetään Java EE -verkkosovellusten kehittämiseen, niillä on eroja. Itse asiassa Spring MVC kehitettiin vastaamaan muutamiin Strutsin (versio 1) rajoituksiin. Mutta Struts2 on erittäin parannettu kehys kuin versio 1 (niillä ei edes ole samaa koodipohjaa), ja siksi kevään MVC ja Structs2 ovat erittäin vertailukelpoisia.
Yksi Spring MVC: n tärkeimmistä eduista on, että on mahdollista integroida saumattomasti moniin näkymävaihtoehtoihin, kuten JSP / JSTL, Tiles, FreeMaker, Excel, PDF ja JSON. Mutta toisin kuin Struts, Spring MVC ei tarjoa sisäänrakennettua AJAX-tukea (on käytettävä kolmannen osapuolen AJAX-kirjastoa).
Viime kädessä molempia pidetään erittäin kypsinä kehyksinä, ja valinta näiden kahden välillä johtuu henkilökohtaisesta mieltymyksestä. On tärkeää huomata tässä, että jos tukijaloihin kohdistuu negatiivisia tunteita, ne johtuvat vain Struts-version 1 (jota pidetään nyt vanhentuneena) havaituista puutteista.