Technik von Grails und Groovy

Grails wurde im März 2008 in der Version 0.1 das erste Mal veröffentlicht. Grails ist ein Webframework, welches auf bekannten Technologien beruht. Dies sind Spring, Hibernate, JPA, EJB und Sitemesh. Zudem besteht die Möglichkeit eine Vielzahl von Plugins zu benutzen, so kann man z.B. auch die Yahoo Liberay einbinden. Grails baut auf das MVC Modell auf. Bei einer Anwendung gibt es daher die Domain-Klassen, die Controller und die Views. Dabei steht das M für die Domain-Klassen in einer Anwendung, welche die Entitäten der Datenbank spiegeln. Sie stellen daher die Schnittstelle zur Datenbank dar. Das V steht für View und bildet die Oberfläche. Unter View versteht man die Seiten, welche die Oberfläche darstellen. Diese können GSP (Groovy Server Pages) oder auch JSP (Java Server Pages) Seiten sein. Zwischen den Domain-Klassen und den Views findet man das C, das für Controller steht. Ein Controller beinhaltet die Geschäfts- und Anwendungslogik und wird durch die Services unterstützt. Auf den Oberflächen kann man durch so genannte TagLibs weitere nützliche Funktionen hinzufügen. Eine Domain-Klasse beinhaltet die Attribute einer Klasse, die Beziehung von Attributen zu einer anderen Klasse (OneToOne, ManyToOne, ManyToMany) und die Gültigkeitsprüfung (Validierung) der Attribute. Zudem besitzt eine Domain-Klasse Methoden, welche vordefiniert sind. Dazu kann man noch eigene Methoden erstellen. Ein Controller hat die Aufgabe Antworten vorzubereiten oder diese zu erstellen. Ein Controller enthält Properties, welche als Actions bezeichnet werden. Jede Action kann das Abspeichern eines Objektes in der Datenbank zur Aufgabe haben, aber auch das Ausgeben einer Liste von allen Objekten, die sich in der Datenbank befinden. Eine Action bekommt als Wert eine Closure zugewiesen, welche im Gegensatz zu Methoden in Groovy viel flexibler ist. Die Benutzung von Closures ermöglicht es auf eine Reihe von dynamischen Properties und Methoden zuzugreifen. Grails fügt jedem Controller während der Laufzeit diese dynamischen Properties und Methoden hinzu. Grails steht für simple (einfach) und DRY(Convention over Configuration). Grails ist an das Konzept von Ruby on Rails angelehnt, jedoch auf der Basis von Java. Durch die Verwendung von Groovy als Programmiersprache muss jedoch keine wirklich neue Programmiersprache erlernt werden, da sich Groovy von Java nur minimal unterscheidet und Java Code in Groovy genutzt werden kann. Bei Ruby on Rails muss hingegen mit Ruby eine neue Programmiersprache erlernt werden. Groovy ist eine Scriptsprache, die es ermöglicht, sowohl objektorientiert als auch funktional, zu programmiaeren. Sie läuft in der Java Runtime und somit in deren Virtuellen Maschine. Zudem stehen in Groovy alle Java-Klassen zur Verfügung und genauso auch in Java alle Groovy-Klassen. Dadurch besteht in Groovy die Möglichkeit auf alle Java Libraries (zu Deutsch: Bibliotheken) zuzugreifen. Damit öffnet sich der Zugang zu vielen Möglichkeiten, der durch die große Anzahl und Vielfalt von Java-Bibliotheken geboten wird, aber auch die Möglichkeit in die Controller-Klassen Java-Klassen einzubinden und zu verwenden. In den meisten Fällen kann Java-Code direkt in ein Groovy-Script oder eine Groovy-Klasse eingefügt werden. Im vergangen Jahr ist die Anzahl der Plugins deutlich gestiegen und sie wird weiter steigen.