2009-06-06 17 views
11

Quali sono i vantaggi/svantaggi di Seam over Spring? Perché dovrei usare Seam al posto di Spring?Quali sono i vantaggi/svantaggi di Seam over Spring?

C'è qualcosa che può essere fatto in Seam che non può essere fatto in primavera? Qualcosa in Primavera che non può essere fatto in Seam?

Che dire di architettura statica/stateless? Sono un utente di Spring, quindi sono di parte, naturalmente.

risposta

22

Perché primavera?

  • Cleaner codice
  • applicazione semplificata configurazione
  • Nizza integrazione con i più diffusi prodotti open source
  • prima classe di supporto AOP
  • di sicurezza su scala aziendale: Acegi
  • altamente flessibile MVC
  • Sottratto accesso ai dati (JDBC è OK)
  • Enterprise Java senza EJB
  • test è facile

Perché Seam?

  • Unire Java EE 5 standard (EJB 3.0, JPA, JSF, Annotazione) senza soluzione di continuità
  • Stateful dal disegno
  • Bijection
  • integrato Ajax (ICEfaces e Ajax4jsf)
  • integrazione dei processi aziendali (jBPM)
  • regole business Integration (Drools)
  • di gestione dello spazio di lavoro
  • Deliver stack completo (da JBoss & RedHat)
  • Testo Seam e miglioramenti EL
  • Probabilmente sarà uno standard (JSR-299: Web Beans)

Da Deathmatch quadro: Primavera vs Seam. Thomas Wiradikusuma (primavera). Joshua Jackson (Seam). Java User Group Indonesia. JaMU 07.03. 17 marzo 2007 presentazione del power point here

3

Seam offre un'integrazione carina, senza soluzione di continuità tra i componenti che costituiscono la pila di giunzioni. Tutto molto bello per tutto il tempo che conservi all'interno di quella pila, e all'interno del modello della giuntura e delle cose da fare. Tutto inizia a sembrare un po 'meno convincente non appena inizi a fare qualcosa di insolito, però.

Se non è troppo di una generalizzazione, Seam è molto "microsofty" al riguardo. Questa non è una brutta cosa, è solo una questione stilistica. La primavera è più aperta e richiede uno sforzo maggiore per andare avanti, ma alla fine è più flessibile e molto più aperta.

2

È possibile utilizzare primavera e Seam insieme - Primavera per i componenti di back-end, Seam per la valorizzazione dello strato web (JSF/GWT/Wicket) e altre cose. Seam offre molte funzionalità Spring (ad es.Contenitore IoC, gestione delle transazioni) - nel tuo progetto puoi decidere - l'implementazione della strega da usare. Maggiori dettagli sull'integrazione di Seam with Spring - "Seam in Action - free bonus chapter"

2

Confrontiamo i due.

Che cosa è comune?

Entrambi sono open source, seguono l'architettura MVC e dispongono di un front controller basato su servlet.

Vantaggi di Spring MVC

  • Estensione di Struts.
  • La vista può essere sviluppata utilizzando JSP e HTML. Puoi anche plug-in di altri come PHP o Velocity.
  • Dispone di un numero elevato di controller predefiniti.
  • Integrato con scatola a molla.

Vantaggi di Seam

  • Estensione del JSF
  • View può essere sviluppato utilizzando libreria di componenti JSF. C'è un gran numero di venditori tra cui scegliere.
  • Si integra entità JPA con strato di Web
  • annotazione basato convalida
  • integra con EJB 3.0
  • fuori la scatola di supporto jBPM che fornisce le definizioni del flusso di processo.
  • Si integra con Drools in cui è possibile definire le regole aziendali del livello Web.
  • Un buon supporto per la comunità.

Conclusione

Dal Seam è costruita su JSF, ha gran numero di librerie UI Component cui scegliere. Riutilizza lo stack Java EE meglio. Ha molti moduli interessanti integrati in anticipo.

Spring MVC è costruito su Struts e Spring, quindi riutilizza lo stack di Spring Framework molto meglio di altri. Ma la vista è costruita usando JSP, quindi dobbiamo affidarci ai fornitori di librerie di tag JSP per creare componenti ricchi.

Seam framework sarebbe una scelta migliore in quanto la struttura di Spring è comunque abbastanza estensibile da poter essere sfruttata da Seam.

+4

'Spring MVC è costruito sopra puntoni e molla', la primavera non è mai stata costruita sopra Struts. –

+1

"Ma la vista è costruita usando JSP [...]". JSP è un'opzione _one. La cosa bella di Spring MVC è che puoi scegliere qualsiasi tecnologia di visualizzazione. – James

5

sebbene la cucitura abbia molti vantaggi rispetto alla primavera, c'è una parola magica che vale davvero la pena prestare attenzione e questa è PERFORMANCE !!! se non sei preoccupato per problemi di prestazioni, andrei con la cucitura. D'altra parte, se vuoi che la tua applicazione sia il più veloce possibile e il tuo hardware è limitato, userei la primavera. Non sto dicendo che non puoi sviluppare applicazioni veloci con la giuntura, ma per farlo devi davvero sapere cosa stai facendo. Ho usato entrambi (non sono un guru in nessuno di essi) e quello che ho scoperto è che, anche se la primavera ha bisogno di più sforzi per costruire ciò che vuoi, alla fine il risultato è più flessibile e sta migliorando.Non penso che ci sia qualcosa che può essere fatto in un quadro che non può essere fatto nell'altro, dicendo che, ricorda che non sono un esperto di nessuno di questi.

Problemi correlati