Qual è la differenza tra Spring, Struts, Hibernate, JavaServer Faces, Tapestry?


199

Posso sapere qual è la differenza tra: -

  1. Primavera
  2. Struts
  3. Puntoni 2
  4. Hibernate
  5. Volti di JavaServer
  6. Pagine JavaServer
  7. arazzo

Queste tecnologie / framework sono complementari tra loro? Oppure sono alternative l'una all'altra (dopo che ne uso una, quindi non ho bisogno di usare l'altra)?

Grazie.

Risposte:


267
  1. Spring è un contenitore IoC (almeno il nucleo di Spring) e viene utilizzato per collegare le cose mediante l'iniezione delle dipendenze. Spring offre servizi aggiuntivi come la gestione delle transazioni e la perfetta integrazione di varie altre tecnologie.
  2. Struts è un framework di presentazione basato sull'azione (ma non utilizzarlo per un nuovo sviluppo).
  3. Struts 2 è un framework di presentazione basato sull'azione , la versione 2 di cui sopra (creata da una fusione di WebWork con Struts).
  4. Hibernate è uno strumento di mappatura relazionale ad oggetti, un framework di persistenza .
  5. JavaServer Faces è un framework di presentazione basato su componenti .
  6. JavaServer Pages è una tecnologia di visualizzazione utilizzata da tutti i framework di presentazione citati per la visualizzazione.
  7. Tapestry è un altro framework di presentazione basato su componenti .

Quindi, per riassumere:

  • Struts 2, JSF, Tapestry (and Wicket, Spring MVC, Stripes) sono framework di presentazione . Se ne usi uno, non ne usi un altro.
  • Hibernate è un framework di persistenza e viene utilizzato per persistere oggetti Java in un database relazionale.
  • La primavera può essere utilizzata per collegare tutto questo e per fornire una gestione delle transazioni dichiarativa.

Non voglio rendere le cose più confuse, ma nota che Java EE 6 offre un equivalente moderno, standardizzato e molto bello dei framework di cui sopra: JSF 2.0 e Facelets per la presentazione, JPA 2.0 per la persistenza, Iniezione delle dipendenze, ecc. Per un nuovo sviluppo, questa è IMO un'opzione seria , Java EE 6 è un ottimo stack.

Guarda anche


2
Vorrei sottolineare che in questo tipo di contesto di confronto alcune persone usano anche la parola Spring per riferirsi al proprio framework MVC (che è molto più bello di Struts IMO).
MetroidFan2002,

Ben spiegato, ma è ancora troppo tecnico. Ti consiglierei di spiegarlo in termini laici. Comunque i collegamenti alla fine lo hanno fatto.
noob,

La risposta è davvero un ottimo punto di partenza, ma potrebbe essere migliorata spiegando i concetti principali introdotti (framework basati su richiesta e basati su componenti, container IoC, framework di presentazione vs persistenza ...) Allo stato attuale, richiede molti altri googeling, ma è comunque una buona risposta e un ottimo punto di partenza! Upvote.
Wouter,

19

Generalmente...

Hibernate viene utilizzato per gestire le operazioni del database. Esiste un ricco set di funzionalità dell'utilità di database, che riduce il numero di righe di codice. Soprattutto devi leggere @Annotazione di ibernazione. È un framework ORM e un livello di persistenza.

Spring offre un ricco set di meccanismi di lavoro basati sull'iniezione. Attualmente, la primavera è ben nota. Devi anche leggere su Spring AOP. C'è un ponte tra Struts e Hibernate. Principalmente Spring offre questo tipo di utilità.

Struts2 fornisce una programmazione basata sull'azione. Esiste un ricco set di tag Struts. Struts dimostra una programmazione basata sull'azione, quindi devi mantenere tutto il controllo pertinente della tua vista.

Inoltre, Tapestry è un framework diverso per Java. In cui devi gestire solo .tml(file modello). Devi creare due file principali per qualsiasi classe. Uno è la classe JAVA e un altro è il suo modello. Entrambi i nomi sono uguali. Tapestry chiama automaticamente le classi correlate.


7

Puoi vedere la panoramica e la classifica per te qui . Hibernate è un ORM, quindi puoi usare struts + Hiberante o spring + hibernate per creare un'app web. Diversi framework Web e molti sono alternativi l'uno all'altro.


4

Spring è un framework applicativo che si occupa di IOC (Inversion of Control).

Struts 2 è un framework MVC per applicazioni Web che si occupa di azioni.

Hibernate è un ORM (Object-Relational Mapping) che si occupa di dati persistenti.


3

In breve,

Struts è destinato allo sviluppo front-end del sito Web

Hibernate è per lo sviluppo back-end del sito Web

Spring è per lo sviluppo full stack del sito Web in cui Spring MVC (Model-View-Controller) è per il front-end. ORM, JDBC per accesso / integrazione dati (backend). eccetera


2

In ibernazione non è necessario preoccuparsi di come creare una tabella in SQL e non è necessario ricordare la connessione, istruzioni preparate come quelle dati persistono in un database. Quindi, in pratica, semplifica la vita di uno sviluppatore.


2

Spring è un framework leggero e open source creato da Rod Johnson nel 2003. Spring è un framework completo e modulare, il framework Spring può essere utilizzato per tutte le implementazioni di layer per un'applicazione in tempo reale o la molla può essere utilizzata per lo sviluppo di layer particolari di un'applicazione in tempo reale.

Struts è un framework di applicazioni Web open source per lo sviluppo di applicazioni Web Java EE. Utilizza ed estende l'API Java Servlet per incoraggiare gli sviluppatori ad adottare un'architettura MVC (model-view-controller). È stato originariamente creato da Craig McClanahan e donato alla Fondazione Apache nel maggio 2000.

Di seguito è riportato il grafico comparativo della differenza tra Spring e Strut Framework

inserisci qui la descrizione dell'immagine


0

Le pagine e i componenti di Tapestry sono semplici POJO (Plain Old Java Object) costituiti da getter e setter per un facile accesso alle funzionalità del linguaggio Java.


0

Le differenze tra Spring , Struts e Hibernate sono le seguenti:

  1. Spring è un framework applicativo, ma Struts e ibernazione no.
  2. Spring e Hibernate sono leggeri ma Struts 2 no.
  3. Spring and Hibernate ha un'architettura a strati, ma Struts 2 no.
  4. La molla e l'ibernazione supportano l'accoppiamento libero, ma Struts 2 no.
  5. Struts 2 e Hibernate hanno una libreria di tag ma Spring no.
  6. Spring e Hibernate hanno una facile integrazione con le tecnologie ORM, ma Struts no.
  7. Struts 2 ha una facile integrazione con le tecnologie lato client ma Spring e Hibernate non ce l'hanno.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.