Puis-je utiliser Grails mais du code en Java?


J'ai entendu et lu pas mal de choses sur le cadre Grails. Je comprends de leur site Web que c'est un cadre conçu pour cibler le langage Groovy.

Grails ressemble à un framework plus adapté aux applications petites et moyennes que les frameworks comme Spring et Struts qui nécessitent trop de configurations à configurer. Mais en même temps, je suis assez réticent à sauter directement dans le langage Groovy pour des raisons telles que pas assez mature, difficile de trouver des développeurs, etc.

Je veux savoir si je peux utiliser Java au lieu de Groovy et pourtant tirer parti des avantages de Grails (ou quelque chose qui modèle après Rails). Alors, puis-je utiliser le framework Grails mais du code en langage Java? Même si Groovy semble être un sur-ensemble de Java et qu'ils peuvent tous deux fonctionner de manière transparente les uns avec les autres, je ne trouve pas d'endroit qui dise spécifiquement si je peux ou non utiliser Grails et écrire en Java.

Author: Carven, 2014-02-23

2 answers

Vous pouvez, mais vous perdrez tous les avantages de Grails. Comme les méthodes dynamiques, les artefacts, les contrôleurs, la plupart des plugins, etc. Et je ne pense pas que vous pourrez utiliser GORM (mappage de base de données) à partir de Java.

Ce que vous perdrez:

  • GORM et Domains - > vous pouvez utiliser Hibernate à la place
  • Contrôleurs et mappage d'URL- > Spring MVC
  • Services - > vous pouvez utiliser de vieux haricots de printemps simples à la place, c'est fondamentalement la même chose
  • la plupart des plugins, parce que la plupart d'entre eux sont basés sur des fonctionnalités Groovy, des méthodes dynamiques ou GORM

Donc, fondamentalement, vous obtiendrez juste une application Spring MVC standard avec des vues GSP limitées et, peut-être, un moyen plus pratique de configurer l'application, des utilisations plus faciles des fichiers/ressources statiques et i18n.

PS Vous pouvez toujours écrire du code Groovy avec une syntaxe de type Java. Et utilisez toutes les fonctionnalités de Grails dans ce cas (en passant lentement à Groovy, vous verrez)

PPS Il ne manque pas de développeurs Groovy, btw. Chaque développeur Java peut développer Groovy. Il suffit de 2-3 heures pour lire une introduction à Groovy pour le programmeur Java.

 11
Author: Igor Artamonov, 2014-02-23 15:57:06

Groovy est un sur-ensemble de Java, vous pouvez donc écrire du Java pur dans un fichier Groovy, profitant ainsi des outils de Grails. La mise en garde est que vous devez donner à vos fichiers l'extension .groovy afin qu'ils soient traités par Groovy.

Si vous voulez vous en tenir à Java pur, vous feriez probablement mieux de vous en tenir à un framework Java pur. D'un autre côté, vous avez peut-être une excellente occasion d'apprendre Groovy. La courbe d'apprentissage de Groovy est très peu profonde (après tout, vous pouvez écrire Java standard).

Partie de ce qui rend Grails si rapide et facile est son utilisation intensive de Groovy, en particulier les contrôleurs (can) ressemblent à ceci:

def index = {
  def model = Person.findAllByCity("Oxford")
  respond model
} 

Le plus grand avantage (À mon humble avis) ici de Groovy (et pourquoi utiliser Grails sans cela n'est pas vraiment faisable) est l'appel de méthode Person.findAllByCity("Oxford"), où GORM crée dynamiquement des méthodes à l'exécution en fonction des attributs de votre classe de domaine.

Il est possible d'écrire ce qui précède d'une manière plus Java, bien que vous ne puissiez pas vous débarrasser du Groovy complètement:

void index = {
  List<Person> model = Person.findAllByCity("Oxford") // This is still a dynamic method added by the Groovy MOP
  respond(model)
} 

Notez que je n'ai pas du tout testé le code ci-dessus.

 3
Author: spikeheap, 2014-02-23 10:36:55