2009-10-08 13 views
11

Sono interessato a imparare un framework di sviluppo web Java e sto cercando alcune raccomandazioni/suggerimenti su cui dovrei imparare (e perché).Quale framework Java per imparare?

Idealmente, vorrei il quadro a:

  1. basarsi MVC.
  2. Avere minimo se qualsiasi configurazione
  3. Avere un facile da usare ORM
  4. Avere la gestione delle sessioni decente
  5. essere facile da pick-up

ho familiarità con piloni e Django quindi se c'è un framework java simile a uno di quelli di cui sarei particolarmente interessato.

Grazie.


Conclusione:

In primo luogo, vorrei ringraziare coloro che ha preso il tempo per condividere le loro conoscenze. Nelle scorse settimane ho provato Spring MVC, Wicket e Stripes. Alla fine, ho scelto Stripes per tutte le ragioni descritte in "Disobbedienza civile"; sorprendentemente nessuna delle sue affermazioni si è rivelata iperbolica. In congiunzione con Stripes, sto usando JPA/Hibernate. Una delle preoccupazioni che ho avuto è che la comunità di Stripes sembrava relativamente "piccola" rispetto a Struts2, JSF, ecc. Sebbene sia relativamente piccola, la community è molto accessibile, amichevole e utile.

Infine, mentre non ho provato Grails, l'ho esaminato e sembra molto interessante/promettente. Da quello che ho visto, la sintassi di Groovy sembra molto simile a Python (dato che mi è familiare w/python, che mi renderebbe più facile l'apprendimento) e il framework Grails stesso sembra essere un framework RAD paragonabile a Rails, Django/Piloni. Certamente pianificherò di approfondire e (nel prossimo futuro) eventualmente apprendere groovy/grails.

+1

si dovrebbe verificare play framework. È il miglior framework web di tipo MVC in termini di usabilità e prestazioni. Play to Java è come Django per Python e Rails to Ruby, ma la cosa più importante è che Play ha prestazioni molto migliori. Inoltre, supporta il supporto Scala che offre un'ottima funzionalità a livello di lingua –

risposta

7

Stripes è senza dubbio la migliore e più semplice framework Java che abbia mai avuto il piacere di usare. Per rispondere a ciascuna delle vostre richieste:

Essere basato su MVC.

MVC è in un certo senso nell'occhio dell'osservatore - almeno, questo dipende in gran parte da come si progetta la struttura del codice. Ma sì, è abbastanza semplice usare una struttura di progetto MVC con Stripes.

Avere minimo se qualsiasi configurazione

Questo è dove brilla Stripes. Per iniziare, devi solo inserire alcune righe nel tuo web.xml. Tutto il resto è automatizzato. La bellezza di Stripes è che tutto può essere facilmente ignorato se lo desideri.

Avere un facile da usare ORM

Stripernate è un'estensione popolare per il quadro che, ancora una volta, funziona automagicamente.

Avere la gestione delle sessioni decente

Semplice come un @Session annotazioni sul campo. Oppure puoi mantenere l'intero ActionBean nella sessione, se lo desideri. Stripes ha il supporto integrato per Wizards, quindi non devi preoccuparti di preservare lo stato tra le richieste.

essere facile da pick-up

Questa è vestito più forte Stripes'. Per non parlare, lo Wiki è incredibilmente ben documentato.

Inoltre, Stripes ha il supporto integrato per layout templates, localization, AJAX e un sacco di altre cose. E a differenza di alcuni framework che richiedono dozzine di JAR giganteschi (tosse ... Tapestry), l'intero framework è un singolo JAR che pesa meno di 500 KB.

11

Grails potrebbe essere quello che stai cercando. Funziona su Groovy (una delle lingue più diffuse basate su JVM).

Utilizza una metodologia di codifica per convenzione, quindi c'è poca configurazione.

È MVC-based e ha il suo ORM (chiamato GORM), ma è possibile collegare Hibernate (probabilmente il più popolare ORM Java).

+0

+1: non ho mai utilizzato Grails, ma da quello che ho visto della documentazione, sembra che sia compatibile con ciò che Dan sta cercando. Per inciso, una volta che Grails è attivo e funzionante, sembra che sia possibile codificarlo in Java, Groovy o (probabilmente) in qualsiasi altra lingua JVM. – rtperson

+0

Esatto. Poiché stai utilizzando Groovy, puoi collegare * qualsiasi * classe Java (creata tramite * qualsiasi * altra lingua compatibile con JVM) –

+0

+1 per Grails, IMO una scelta eccellente per un programmatore java –

3

Credo che Spring Web MVC soddisfi le vostre esigenze.

Spring About Page

+0

-1; non menzionare quale parte di Spring – Rob

+0

Ho pensato che potesse essere dedotta dalla domanda, ma ha corretto quello per te. – AlexCuse

7

Buona fortuna. La domanda che hai posto è più o meno simile a "Voglio un panino arrosto di manzo alla griglia, fatto con pollo". I framework disponibili in Java tendono ad essere pesanti sulla configurazione e un po 'difficili da imparare.

Detto questo, qui sono i miei suggerimenti:

  1. MVC Based - Spring MVC o JSF, nessuno dei quali è particolarmente facile da imparare. Non ho usato nessun altro framework web MVC (Wicket, Tapestry, ecc.), Quindi qualcun altro potrebbe dover pesare qui.
  2. Configurazione minima - La soluzione migliore è Spring MVC con annotazioni. Ma questo è Java - configurazione inferno è il nome del gioco.
  3. ORM facile da usare - Non sono sicuro di cosa siete abituati in altre lingue, ma in ORM Java non vengono inseriti nel framework MVC. La tua scommessa migliore per un ORM facile da usare è JPA in cima a Hibernate, in particolare se sborsai i $ 60 US per MyEclipse. L'implementazione JPA in MyEclipse vale da sola più del valore dell'investimento. Non è perfetto, solo meglio di qualsiasi altra cosa abbia visto.
  4. Gestione della sessione decente - Fai la tua scelta. Dalla fine degli anni '90, i contenitori J2EE gestiscono più sessioni di quante probabilmente ne avrai mai bisogno.
  5. Facile da prelevare - Nulla che viene in mente. Facile come Java è come una lingua, gli strumenti web ad esso associati tendono ad essere ciò che rende i neofiti più difficili. Scopri JSP e stai lontano da JSF, poiché ha un ciclo di vita eccentrico che tende a nascondere gli errori che vuoi veramente conoscere.

Buona fortuna!

Modifica: Non ho mai usato Grails, ma devo concordare con Brian e Nathan nel dire che sembra la soluzione migliore per quello che stai cercando.

+0

Sebbene non sia un framework "completo", trovo la configurazione della servlet di Guice 2.0 minima e facile da rilevare. –

+0

Non so: "... un panino arrosto di manzo alla griglia, fatto di pollo", ma in Texas puoi ottenere "Pollo fritto" :-) Grazie per l'heads-up su ORM - JPA/Hibernate è stato relativamente facile da riprendere. – Dan

3

Il mio preferito è il quadro a strisce. www.stripesframework.org. Molto semplice e flessibile. Spiacente, non ho notato il componente orm. Avrai bisogno di un ORM separato, come l'ibernazione.

Tuttavia, grails comprende l'intera lista.

3

Puoi provare Wicket e arazzi. Questi sono quadri più capaci. Entrambi sono costruiti su diverse serie di idee.

1

Si potrebbe provare Tapestry 5. Si tratta di un framework Web basato su componenti MVC, con una configurazione quasi zero (convenzione sulla configurazione, Ruby on Rails-like). È più facile da imparare rispetto a JSF, ad esempio (JSF è un altro framework basato su componenti).

Tapestry 5 ha molti componenti pronti per l'uso e un'integrazione semplice e pulita con Hibernate (ORM) e Struts (middleware). Oh, e la funzione live reloading è impressionante.

2

Dal momento che hai detto di volere un framework web "Java", raccomando Wicket, GWT o RAP.

Wicket è una struttura molto semplice, "bare metal" in cui tutta la logica è in Java (anziché essere suddivisa tra Java e JSP come in Struts, JSF o altri framework di questo tipo). È anche orientato ai componenti, il che significa che è possibile riutilizzare la stessa componente della GUI (sia essa semplice o composita) in pagine diverse. Infine, Wicket consente di utilizzare AJAX, pur non richiedendo la scrittura di tutta la pagina in Javascript (come richiesto da extjs, ad esempio)

GWT e RAP sono entrambi "java to javascript compilers".Scrivi il tuo codice in Java normale, inclusa la logica per l'interazione sul lato client (rispondendo a clic, trascina, ecc.) E il framework compila il codice in javascript che viene eseguito sul client e interagisce con il server quando necessario. GWT (da google) si basa sul modello swing, mentre RAP (da eclipse) si basa sul modello RCP di Eclipse (che è molto più ricco di swing).

La differenza principale tra Wicket e GWT/RAP è che il wicket è più orientato alla scrittura di siti "old school" (ad esempio, stackoverflow è old school - pagine, moduli, con un po 'di ajax), mentre GWT/RAP sono per scrivere applicazioni RIA (dove ci sono molti widget con interazione complessa).

Infine, per "out of the box" alternative, controlla ExtJS, cappuccino e forse Java Web Start

1

Consiglio vivamente l'utilizzo di ZK. L'ho usato per numerosi progetti e l'ho trovato estremamente produttivo e affidabile. È costantemente aggiornato e la nuova versione (5.0 penso) include sia l'architettura server-centrica che la possibilità di personalizzare il client.

ZK 5 ha l'integrazione jQuery, che è possibile utilizzare se si desidera sporcarsi le mani con Javascript, anche se questo è completamente opzionale. Ho anche letto che GWT sta per essere implementato in modo tale che la completa personalizzazione lato client sia disponibile usando Java.

Soddisfa i 5 criteri e può anche essere utilizzato in combinazione con Grails (see here). Ecco alcuni link per ottenere il vostro iniziato:

Spero che queste Aiutarti!

+0

Vorrei aggiungere: "Usa ZK con Grails! Ottieni i vantaggi di entrambi!" :-) – Philippe

1

E i Villini?

Hamlets (precedentemente noto come Content Servtion Framework basato su servlet IBM) è un sistema open source per la generazione di pagine Web dinamiche sviluppate da René Pawlitzek presso IBM. Un Hamlet è un'estensione di servlet che legge i file modello XHTML contenenti la presentazione utilizzando SAX (l'API semplice per XML) e aggiunge dinamicamente il contenuto al volo a quei punti nel modello contrassegnati con tag e ID speciali utilizzando un piccolo insieme di funzioni di callback . Un compilatore di template può essere usato per accelerare Hamlet.

Gli Hamlet forniscono un framework di creazione di contenuto basato su servlet, facile da usare, leggero, di dimensioni ridotte, che facilita lo sviluppo di applicazioni basate sul Web. La struttura di Hamlets non solo supporta ma impone anche la completa separazione tra contenuto e presentazione. È il risultato di un radicale sforzo di semplificazione del software.

+0

link di Hamlets: [http://hamlets.sourceforge.net] (http://hamlets.sourceforge.net/) –