Les cadres web Java


Je regardais autour de moi pour voir s'il y avait un équivalent à django/RoR en java.

j'ai trouvé:

Quelqu'un aurait-il déjà essayé ces cadres, ou connaissez-vous d'autres? Sont-ils plus rapides que django / RoR?

Author: Peter Hilton, 2009-12-01

18 answers

J'ai découvert Grails il y a environ un an, et je n'ai pas regardé en arrière. Il prend beaucoup d'idées de Ruby on Rails (original, il a été nommé Groovy on Rails), et a un riche écosystème de plugins / extensions. Grails et le langage Grails sous - jacent (sur-ensemble de Java) en font un plaisir de programmer-vous pouvez vraiment vous concentrer sur l'essentiel. Sa fonctionnalité GORM (une couche au-dessus de hibernate) est également très puissante, et en plus du système de plugin, est l'une des deux énormes raisons de le vérifier (vous pouvez l'utiliser dans vos applications java ainsi).

Avec la version 1.2 sur le point de sortir, je pense qu'elle est suffisamment riche en fonctionnalités et mature pour être quelque chose que tout développeur devrait avoir dans sa ceinture d'outils.

En ce qui concerne les performances, c'est certainement moins que celui de Java pur, mais vous avez tout de spring / hibernate / J2EE à votre disposition pour optimiser, et vous pouvez toujours passer en java pur pour certains morceaux de code critiques. Il y a eu quelques expériences récentes avec permettre de courir une partie du code Groovy utilisant une résolution de méthode statique, qui, associée au support invokedynamic, devrait fournir d'énormes améliorations de performances.

D'autres à vérifier en Java sont Spring Roo et AribaWeb.

Mise à jour basée sur des qualifications supplémentaires

Évolutivité, productivité, Documentation et ressources décentes consommation

  • Évolutivité - vous obtenez la pile Java / Spring / Hibernate éprouvée, bien que je ne puisse pas dire Grails fournit beaucoup de lui-même.
  • Productivité - c'est la principale raison d'utiliser Grails. Vous avez une surcharge de performances, mais Grails est ce que vous utilisez lorsque le temps de développement / productivité est plus important.
  • Documentation - les documents grails sont excellents, et il y a au moins trois bons livres écrits sur Grails seul. La communauté est prospère et très utile.
  • Consommation de ressources - c'est le seul compromis. Grails (en partie à cause de la pile java sous-jacente) est beaucoup de ressources. Si je construisais quelque chose comme Google, Grails ne serait pas le choix. Cependant, dans n'importe quelle application Web de toute sophistication, vous feriez bien pour une solution de mise en cache, donc la même chose s'applique ici.
 17
Author: Jean Barmash, 2009-12-01 12:37:58

Stripes semble être assez léger et embrasse la Convention sur la configuration.

 3
Author: John Topley, 2009-12-01 11:11:07

Après avoir utilisé des entretoises, un guichet, des rails et une tapisserie, je vous recommande de regarder dansTapestry 5 .

Il prend en charge

  • dans le rechargement de classe de conteneur (vous n'avez donc pas besoin de redémarrer votre webapp chaque fois que vous apportez une modification)
  • temps de développement rapide et productivité accrue-il utilise un modèle basé sur des composants, avec câblage déclaratif
  • configuration minimale, qui est la plupart du temps dans le code de toute façon, convention sur config - etc..
  • Aucune classe de base à étendre
  • Un langage d'expression pour une utilisation dans les fichiers de modèle
  • bon support ajax
  • excellente prise en charge du débogage, côté client et côté serveur
  • bonne intégration de l'accès aux données
  • une communauté active
  • écrit à partir de zéro avecperformance à l'esprit. par exemple, le regroupement de pages (pour minimiser l'utilisation des ressources), la compression de pages, l'élimination des espaces, tout le code dynamique est compilé en natif.
  • bon support de bean et de formulaire-faire des tâches communes simple. Un drid de base de données triable peut être codé avec une seule ligne de code de modèle et un backend de serveur squelette minimal.

Le seul inconvénient est la documentation, qui est bonne, mais un peu laconique, bien que les groupes d'utilisateurs/listes de diffusion soient très actifs et que la plupart des questions reçoivent une réponse bien et avec impatience.

(Assurez - vous également de ne regarder que T5-et non T4, 3,2,1..... comme ils sont très différents de la version actuelle)

En savoir Plus sur pourquoi ici.

 2
Author: Joel, 2009-12-01 11:33:33

Envisager d'essayer Ascenseur Cadre. C'est vraiment super.

 2
Author: folone, 2009-12-01 12:59:41

Chaque fois que vous envisagez une pile d'applications (langage, framework, etc...) vous devez également considérer ce que vous essayez de résoudre et quel type de compétences en programmation avez-vous à votre disposition. J'ai trouvé que les programmeurs Java plus expérimentés ont été très productifs avec la pile Groovy et Grails par rapport aux programmeurs plus juniors.

Vous mentionnez les points suivants comme sujets de préoccupation:

  • Évolutivité: en termes de quoi exactement? (page vues / seconde, # transactions/seconde, etc...) En général, Groovy & Grails évoluera lorsqu'il s'agit de rendre les pages, mais comme pour toute pile d'applications utilisant ORM (dans le cas de Grails, vous avez GORM), il y a une surcharge à prendre en compte.
  • Productivité: l'un des principaux avantages ici - prototypage rapide, développement rapide est un jeu d'enfant avec Groovy & Grails, bien qu'il aide à avoir des gens sur le personnel qui ont développé en Java ou Ruby pour comprendre ce que le cadre Grails est en fait faire "sous le capot". Il existe des tonnes de plug-ins pour l'interface utilisateur qui aident à créer des pages de type Web 2.0 très rapidement.
  • Documentation: il y a un nombre croissant d'ouvrages de référence de qualité en cours d'écriture pour Groovy & Grails. Les deux mûrissent très bien au cours des 2 dernières années. Les choses ne sont certainement pas très bien documentées en ce qui concerne une grande partie du travail interne du cadre Grails lorsque des erreurs/problèmes sont rencontrés (une grande partie de la sortie du cadre est obscure ou inexistante au mieux lorsqu'une erreur est rencontrée). Si vous êtes prêt à retrousser vos manches et être débrouillard dans la marche à travers le fonctionnement interne, alors vous ne serez pas déçu par cette pile. Encore une fois, les programmeurs expérimentés trouveront cela comme une seconde nature tandis que les gens plus juniors peuvent parfois lever les mains dans la frustration.
  • Consommation de ressources: il y a des frais généraux, mais avec la plupart du matériel trouvé aujourd'hui (local ou dans un nuage), je ne m'inquiéterais pas trop du matériel physique consommation de ressources pour une instance d'application donnée.

J'espère que cela aide.

 2
Author: timarmandpour, 2009-12-03 00:43:25

Je ne connais pas le cadre de jeu, mais pour répondre à la deuxième question, nous faisons quelques projets avec le Webtoolkit de Google. Peut-être la peine de vérifier.
Bonne chance!

 1
Author: jhwist, 2009-12-01 10:48:14

Que diriez-vous de JRoR

 1
Author: jitter, 2009-12-01 10:49:03

Je ne l'ai pas essayé moi-même, mais mes collèges aiment utiliser stripes

Il y a un livre et tout.

 1
Author: Buhb, 2009-12-01 11:09:27

Spring Roo prétend être une solution.

 1
Author: ctron, 2009-12-01 12:45:30

J'ai fait un projet avec grails et je l'ai trouvé très rapide pour certaines tâches, mais il fait beaucoup de "magie" dans les coulisses qui le rend difficile lors du débogage.

Aussi, je me suis retrouvé à lire encore et encore la documentation parce que je ne le sentais pas naturel. Un exemple simple est le contrôleur où les actions sont définies comme des champs (Il est naturel pour moi de penser à une action comme une méthode...). Je peux dire quelque chose à propos de GORM où vous devez connaître des mots spéciaux qui une fois mis dans les champs statiques un peu de magie comme faire un champ transitoire... Pas d'annotations, pas d'autocomplétion... seul le manuel.

Quant au jeu! Je l'ai trouvé étonnamment simple et rapide pour le développement, facile à apprendre et à retenir. La communauté semble plus petite que celle de Grail, mais elle est plus active et plus rapide à répondre. Le seul inconvénient est qu'il ne repose pas sur l'API de servlet, donc certains filtres tiers ou autres sont difficiles à intégrer mais pas impossibles. Il est important de noter que vous peut déployer une application Play dans n'importe quel serveur Web traditionnel packagin comme une guerre.

À mon avis, Grails est génial mais vous devez avoir beaucoup d'expérience avec lui pour être productif, sinon vous perdrez beaucoup de temps avec les manuels. Donc, si ce n'est pas votre cas, je devrais recommander Play! Spécialement si vous n'êtes pas familier avec Groovy

 1
Author: gfournier, 2011-04-02 23:30:18

Je ne sais pas Jouer, mais Spring MVC ou Struts ensemble Hibernate offrira des fonctionnalités similaires.

Il y a beaucoup d'autres options disponibles. Fondamentalement, vous avez besoin d'un framework MVC (Spring MVC, Struts, Wicket) et d'un outil ORM (Hibernate, iBatis). Bien sûr, vous devrez intégrer vous-même les composants nécessaires, mais cela a déjà été fait plusieurs fois et vous pourrez trouver beaucoup d'informations.

 0
Author: kgiannakakis, 2009-12-01 10:48:56

Je ne sais pas si Spring MVC et Hibernate offrent la même facilité d'utilisation que Ruby on Rails (en fait, je suis sûr que c'est beaucoup plus compliqué...). Play Framework ressemble beaucoup plus à Ruby on Rails Je pense, mais je ne l'ai pas moi-même et j'ai seulement regardé le screencast et lu de la documentation à ce sujet, donc si vous voulez avoir une expérience similaire au développement à l'aide de RoR, je pense que vous pouvez mieux essayer quelque chose comme Play au lieu de Spring MVC L'avantage de ce dernier est qu'il est très puissant et capable de s'adapter à un modèle de données existant par exemple (d'après ce que je sais sur RoR, ce n'est pas très trivial dans RoR). Un autre cadre que vous pourriez envisager est Groovy on Grails. Bien qu'il n'utilise pas Java (il utilise Groovy), il est très RoR-comme. Il utilise Spring et Hibernate sous le capot (si je suis correct) et l'avantage de Groovy est que vous n'avez pas le typage statique strict de Java. Ruby on Rails et Django bénéficient fortement de la nature dynamique du langage dans qu'il est implémenté, une fonctionnalité Java manque à cause de son typage statique.

Edit: ah, vous avez déjà mentionné Grails dans votre question...

 0
Author: Martin Sturm, 2009-12-01 10:56:17

Si grails est une option (qui n'est en fait pas un java mais un framework groovy), alors le framework Lift basé sur Scala serait également une option.

 0
Author: bertolami, 2009-12-01 11:02:53

Une autre option est RIFE, qui essaie d'avoir la configuration minimale de RoR tout en étant en Java. Sur votre liste, seul Play Framework a cette fonctionnalité, les autres sont sur la JVM, mais ne sont pas Java (si cela est important pour vous).

 0
Author: Yishai, 2009-12-01 11:10:37

Qu'en est-il de VRaptor? - il utilise le ressort comme conteneur DI et un moteur de contrôleur/Vue similaire à Rails Action-Pack.

 0
Author: Lucas, 2009-12-01 11:12:34

AribaWeb prend également en charge Groovy. Découvrez nos autres fonctionnalités à http://aribaweb.org / et découvrez notre approche pour rendre le développement web productif.

 0
Author: , 2009-12-02 18:47:28

Nous utilisons beaucoup le framework Stripes et cela fonctionne vraiment très bien. Il est vraiment léger et vous oriente vers un design épuré de vos applications. Il cache simplement les parties ennuyeuses du développement de vous, de sorte que vous pouvez vous concentrer sur les choses amusantes (Un tel exemple sont les propriétés indexées).

 0
Author: Anze, 2010-03-08 08:29:04

J'ai utilisé http://www.ninjaframework.org / pour les micro-services et il est très proche de la plupart des paradigmes mvc, si vous avez utilisé rails, asp.net mvc, ou nancyfx, vous êtes prêt à partir. Il est très proche de cette philosophie et vraiment génial et facile à tester. Seulement en bas, il n'y a pas beaucoup de documentation, mais il suit le modèle mvc de très près. Il n'utilise rien de propriétaire dans le cadre, il s'agit donc d'une solution basée sur Java pur. Cela compense donc le manque de documentation.

 0
Author: Fritz Seitz, 2018-01-12 19:34:11