übersicht - java web frontend framework




Java-Web-Frameworks (12)

Eine andere Option ist RIFE , die versucht, die minimale Konfiguration von RoR zu haben, während sie noch in Java ist. Auf Ihrer Liste hat nur Play Framework diese Funktion, die anderen sind auf der JVM, sind aber nicht Java (wenn Ihnen das überhaupt wichtig ist).

Ich schaute mich um, um zu sehen, ob es in Java ein Äquivalent zu Django / RoR gibt.

Ich fand:

Hat jemand jemals diese Frameworks ausprobiert, oder kennen Sie andere? Sind sie schneller als Django / RoR?



Ich bin mir nicht sicher, ob Spring MVC und Hibernate die gleiche Benutzerfreundlichkeit bietet wie Ruby on Rails (eigentlich bin ich mir sicher, dass es viel komplizierter ist ...). Play Framework ist viel mehr wie Ruby on Rails, aber ich habe es nicht selbst gemacht und nur den Screencast angesehen und einige Dokumentationen darüber gelesen. Wenn Sie eine ähnliche Erfahrung mit RoR haben möchten, denke ich, dass Sie das können Probier lieber etwas wie Play statt Spring MVC mit Hibernate. Letzteres hat den Vorteil, dass es sehr leistungsfähig ist und sich beispielsweise an ein existierendes Datenmodell anpassen kann (von dem, was ich über RoR weiß, das ist in RoR nicht ganz trivial). Ein anderer Rahmen, den Sie in Betracht ziehen könnten, ist Groovy on Grails. Es verwendet zwar kein Java (es verwendet Groovy), es ist jedoch sehr RoR-ähnlich. Es verwendet Spring und Hibernate unter der Haube (wenn ich richtig liege) und der Vorteil von Groovy ist, dass Sie nicht die strenge statische Typisierung von Java haben. Ruby on Rails und Django profitieren stark von der dynamischen Natur der Sprache, in der es implementiert ist, eine Eigenschaft, die Java wegen seiner statischen Typisierung vermisst.

Edit: ah, du hast Grails schon in deiner Frage erwähnt ...


Ich habe vor ungefähr einem Jahr Grails entdeckt und habe nicht zurückgeblickt. Es braucht eine Menge Ideen von Ruby on Rails (ursprünglich hieß es Groovy on Rails), und hat ein reichhaltiges Ökosystem von Plugins / Erweiterungen. Grails und die zugrunde liegende Grails-Sprache (Superset von Java) machen die Programmierung zu einer Freude - Sie können sich wirklich auf das Wesentliche konzentrieren. Seine GORM-Funktionalität (eine Ebene über dem Winterschlaf) ist ebenfalls sehr mächtig und zusätzlich zu dem Plugin-System, ist einer von zwei großen Gründen, es auszuprobieren (Sie können es auch in Ihren Java-Apps verwenden).

Mit der Version 1.2, die bald herauskommen wird, fühle ich, dass sie funktionsreich und reif genug ist, um etwas zu sein, das jeder Entwickler in seinem Toolbelt haben sollte.

Was die Leistung betrifft, ist es definitiv weniger als die von reinem Java, aber Sie haben alles aus Spring / Hibernate / J2EE zur Verfügung, um zu optimieren, und Sie können immer in reines Java für einige kritische Code-Teile fallen. Es gab kürzlich einige Experimente, bei denen es möglich war, einen Teil des Groovy-Codes mit Hilfe der statischen Methodenauflösung auszuführen, was in Verbindung mit der aufgerufenen dynamischen Unterstützung zu enormen Leistungssteigerungen führen sollte.

Andere, die Sie in Java ausprobieren sollten, sind Spring Roo und AribaWeb.

Update basierend auf zusätzlichen Qualifikationen

Skalierbarkeit, Produktivität, Dokumentation und Ressourcenverbrauch

  • Skalierbarkeit - Sie erhalten den bewährten Java / Spring / Hibernate-Stack, obwohl ich nicht sagen kann, dass Grails selbst viel bietet.
  • Produktivität - das ist der Hauptgrund für die Verwendung von Grails. Sie haben einen Leistungs-Overhead, aber Grails verwenden Sie, wenn Entwicklungszeit / Produktivität wichtiger ist.
  • Dokumentation - die Grals-Dokumentation ist großartig, und es gibt mindestens drei gute Bücher, die nur über Grails geschrieben wurden. Die Gemeinschaft ist erfolgreich und sehr hilfreich.
  • Ressourcen Verbrauch - das ist der eine Kompromiss. Grails (teilweise wegen des zugrunde liegenden Java-Stacks) ist ressourcenintensiv. Wenn ich etwas wie Google bauen würde, wäre Grails nicht die Wahl. Aber in jeder Web-Anwendung, die sich durch einen hohen Entwicklungsgrad auszeichnet, würden Sie sich gut für eine Caching-Lösung eignen. Dies gilt auch hier.

Ich weiß nichts über Play Framework, aber Spring MVC oder Struts zusammen wird Hibernate ähnliche Funktionalität bieten.

Es gibt viele andere Optionen. Grundsätzlich benötigen Sie ein MVC-Framework (Spring MVC, Struts, Wicket) und ein ORM-Tool (Hibernate, iBatis). Natürlich müssten Sie die benötigten Komponenten selbst integrieren, aber das wurde schon viele Male gemacht und Sie werden viele Informationen finden.


Nachdem ich Struts, Wickets, Rails und Tapestry verwendet habe, empfehle ich dir, in Tapestry 5 zu schauen.

Es unterstützt

  • beim Nachladen der Container-Klasse (Sie müssen Ihre Webapp nicht jedes Mal neu starten, wenn Sie eine Änderung vornehmen)
  • schnelle Entwicklungszeit & erhöhte Produktivität - es verwendet ein komponentenbasiertes Modell mit deklarativer Verdrahtung
  • minimale Konfiguration, die sowieso meistens im Code ist, Convention over Config - etc ..
  • Keine zu erweiternden Basisklassen
  • Eine Ausdruckssprache zur Verwendung in Vorlagendateien
  • gute Ajax-Unterstützung
  • hervorragende Debugging-Unterstützung, sowohl auf Client- als auch auf Serverseite
  • gute Datenzugriffsintegration
  • eine aktive Gemeinschaft
  • von Grund auf mit Leistung im Kopf geschrieben. B. Seitenpooling (um die Ressourcennutzung zu minimieren), Seitenkomprimierung, Leerraumeliminierung, wird der gesamte dynamische Code in native kompiliert.
  • Gute Bean & Form-Unterstützung - macht einfache Aufgaben einfach. Ein sortierbarer Datenbank-unterstützter Drider kann mit nur einer Zeile Template-Code und einem minimalen Skeleton-Server-Backend codiert werden.

Der einzige Nachteil ist die Dokumentation, die zwar gut, aber ein wenig knapp ist, obwohl die Benutzergruppen / Mailinglisten sehr aktiv sind und die meisten Fragen gut und gerne beantwortet werden.

(Achten Sie auch darauf, nur T5 zu betrachten - und nicht T4, 3, 2, 1 ..., da diese sich sehr von der aktuellen Version unterscheiden)

Mehr dazu hier .


Wenn Grails eine Option ist (was eigentlich kein Java, sondern ein grooviges Framework ist), dann wäre das Scala-basierte Lift- Framework ebenfalls eine Option.



Stripes scheint recht leicht zu sein und umfasst Convention over Configuration.


AribaWeb unterstützt auch Groovy. Sehen Sie sich unsere anderen Funktionen unter http://aribaweb.org/ an und finden Sie heraus, wie Sie die Webentwicklung produktiv gestalten können.


Wir verwenden Stripes Framework ausgiebig und es funktioniert wirklich großartig. Es ist wirklich leicht und es führt Sie zu einem sauberen Design Ihrer Anwendungen. Es verbirgt im Grunde nur die langweiligen Teile der Entwicklung von Ihnen, so können Sie sich auf die lustigen Sachen konzentrieren (Ein Beispiel sind die indizierten Eigenschaften ).


Ich habe ein Projekt mit Grails gemacht und ich habe es sehr schnell für einige Aufgaben gefunden, aber es hinterlässt viele "magische" Dinge, die das Debuggen erschweren.

Auch habe ich immer wieder die Dokumentation gelesen, weil ich es nicht natürlich fand. Ein einfaches Beispiel ist der Controller, bei dem die Aktionen als Felder definiert sind (es ist natürlich für mich, eine Aktion als eine Methode zu betrachten ...). Ich kann etwas über GORM sagen, wo Sie einige spezielle Wörter wissen müssen, die, wenn sie in statische Felder gesetzt werden, eine Magie wie ein transientes Feld erzeugen ... Keine Anmerkungen, keine Autokomplettierung ... nur das Handbuch.

Wie für das Spiel! Ich fand es erstaunlich einfach und schnell für die Entwicklung, einfach zu lernen und zu erinnern. Die Community scheint kleiner zu sein als Grals, aber sie ist aktiver und schneller zu beantworten. Der einzige Nachteil ist, dass es nicht auf Servlets API angewiesen ist, so dass einige Filter von Drittanbietern oder andere Dinge schwer zu integrieren, aber nicht unmöglich sind. Es ist wichtig zu beachten, dass Sie eine Play-Anwendung in einem herkömmlichen Webserver als Warp-Paket bereitstellen können.

Grails ist meiner Meinung nach großartig, aber man muss viel Erfahrung damit haben, um produktiv zu sein, sonst verliert man viel Zeit mit den Handbüchern. Also wenn das nicht dein Fall ist, sollte ich Play empfehlen! Besonders, wenn Sie Groovy nicht kennen





playframework