2010-04-19 22 views
5

Spring mvc è una struttura che è stata da molto tempo là fuori, è una tecnologia ben documentata e collaudata. Molti siti web utilizzano la primavera.molla mvc vs aggraffatura

Seam è un framework basato sull'implementazione di facce ricche di jsf. Ha molti componenti basati su Ajax. Usa alcune cose pesanti come EJB, JPA. Tutto questo è soggetto a errori e questo framework è così lento (al mio computer è quasi impossibile sviluppare qualcosa perché è molto lento, specialmente ridistribuendo su jboss) Ma è molto buono per le applicazioni di back office.

Qualcuno ha un'esperienza professionale con questi due framework? Potete consigliarmi il migliore? Perché?

saluti

+0

Con Seam è possibile utilizzare POJO anziché EJB. E cosa è lento riguardo all'APP? –

+0

L'intero framework è lento, non jpa. Se testate la pagina più semplice con ab rispetto ad altri framework, riceverete 10 volte meno richieste. – darpet

+0

Anche per cucitura. Ho visto molte applicazioni di cucitura in modo produttivo. Posso facilmente trovare errori. – darpet

risposta

7

Io uso sia: Primavera-MVC (2.5) e Seam

Perché Seam usa Java Server Faces Technology (una tecnologia basata sul lato server), dietro le quinte, è meglio progettato per le piccole e medie applicazioni. (Ogni albero della vista JSF è memorizzato in Session - È possibile archiviare sul lato client, ma tenere conto dei problemi di larghezza di banda).Ma ha alcuni vantaggi:

applicazione Tipicamente web utilizza il seguente percorso

view >> controller >> service >> domain 

con Seam, è possibile ottenere

view >> service >> domain 

O anche (mediante modello mediatore fornito da Seam Framework)

No controller, No service 

view >> domain 

Inoltre,

  • JSF 2 supporta JSR 303 - Bean Validation
  • È possibile utilizzare Wicket invece di JSF, se si desidera
  • supporto conversazione e la gestione dei processi aziendali
  • Usa possono utilizzare Primavera DI se volete

Primavera-MVC

ha una potente infrastruttura web-Tier

  • Handler Mapping (Si sceglie quale controller dovrebbe gestire la richiesta)
  • View resolver (Si sceglie quale View dovrebbe rendere la risposta)
  • Può essere utilizzato per applicazioni di grandi dimensioni
  • potente associazione dati
  • Primavera 3.0 supporta controller Annotazione-based (JSR 303 - Bean Validation, prossimamente)

ma io ancora non uso Primavera 3.0 perché

  • Utilizzando (ed estendendo quando necessario) MultiActionController, posso ottenere convenzione sulla configurazione senza nessuna impostazione XML per definire il Controller (Hai solo bisogno di impostare il MultiActionController come @Component)
  • SimpleFormController fornisce un comportamento simile trovato nella primavera del 3,0 annotazione controllore a

...

circa il percorso di apprendimento, penso che entrambi sono simili.

+2

'" Perché Seam utilizza Java Faces Technology (una tecnologia basata sul lato server), dietro le quinte ". Puoi per favore dimostrare questo punto? Sì Seam utilizza JSF e crea un bridge per questo, ma puoi utilizzare Seam senza toccare JSF o nessuna delle funzionalità JSF. Tutto dipende da quali filtri, servlet e intercettatori abiliti. Ovviamente ci sono tonnellate di componenti integrati che sono specifici per JSF, ma lo stesso vale per sicurezza, primavera, REST, ecc. –

+0

@Shervin Hai ragione quando hai detto: Tutto dipende da quali filtri, servlet e intercettori che abiliti. Ma ho notato che ho incluso Wicket. –

+0

@ArthurRonaldFDGarcia - Utilizzi la giunzione integrata con Spring o da sola? – ziggy

1

ho lavorato professionalmente con Seam ed è un quadro assassino. Aumenta davvero la tua produttività. Puoi usare POJOs invece di EJBs, se pensi che EJBs stia rallentando. Per quanto riguarda la distribuzione, considera la distribuzione su Tomcat anziché su JBoss. Sulla mia macchina la ridistribuzione nel Tomcat viene eseguita in un paio di secondi. Ma non ho ancora usato Spring MVC per confrontarli.

+0

Hai problemi con il pulsante Indietro? Il mio cliente lo disturba davvero. – darpet

+0

L'utilizzo del pulsante Indietro dovrebbe essere deprecato nelle applicazioni Web. Non dovrebbe essere usato per il flusso del programma. Altrimenti Seam è uno dei pochi framework che ti aiuta con il pulsante Indietro. http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/doc/seam/Seam_Reference_Guide/Pageflow_in_Seam-Seam_and_the_back_button.html –

+0

Che ide stai usando? Usi jpa? – darpet

1

Abbiamo utilizzato Seam per un sito molto grande utilizzando POJOS e comunicato con servizi Web o Hibernate distribuito su Tomcat. Abbiamo riscontrato che il supporto del pulsante Indietro non funziona bene o è incline ad essere specifico per i modelli di implementazione. Inoltre, le sessioni tendono a crescere molto se si utilizza lo stato lato server. I tentativi di ridurre le dimensioni della sessione influiscono sul supporto del pulsante di back o sull'uso di iframe a causa della riduzione del numero di stati di visualizzazione memorizzati nella sessione. Più o meno, il nostro problema è stato correlato alle prestazioni. Il tomcat richiede più memoria e supporta meno utenti rispetto a un puntone 1.2 o mvc a molla. Stiamo utilizzando circa 50 tomcats per supportare la nostra base di utenti.

0

Ho usato sia Seam 3 e molla 3 frameworks.While Seam 3 è più facile da codice e ha un sacco di funzioni che supportano la gestione delle sessioni e la gestione delle transazioni, la prestazione è lenta . La primavera è molto più veloce.