Grails
20. Január, 2012, Autor článku: Sebestyén Kamil, Informačné technológie, Študentské práce
Ročník 5, číslo 1
Pridať príspevok
V tomto článku by som Vám chcel predstaviť Grails – framework pre vývoj webových aplikácií pre platformu Java. Grails je open source framework využívajúci programovací jazyk Groovy (ktorý je postavený na platforme Java).
V dnešnej dobe je vývoj webových aplikácii mnokrát zbytočne komplikovaný. Frameworky ako Ruby on Rails, Django a TurboGears vytvorili nový, jednoduchší pohľad na ich tvorbu. Grails stavia na ich konceptoch, pričom však využíva zaužívané technológie Javy ako Spring a Hibernate.
Grails umožňuje rapídny vývoj aplikácií s vysokou produktivitou, keďže využíva programovanie podľa konvencií, čo odstraňuje konfiguráciu cez XML súbory. Takisto obsahuje všetko, čo je potrebné na vývoj ako sú napríklad knižnice a aplikačný server. Grails uplatňuje nasledujúce praktiky, ktoré urýchľujú a uľahčujú vývoj:
- Don’t repeat yourself (DRY) – zabraňuje zbytočnému opakovaniu časti kódu.
- Default is what you expect (DIWYE)
- Scaffolding – slúži na rýchle protypovanie a vytvorenie administračného rozhrania. Jeden riadok kódu dokáže z doménovej triedy vygenerovať controller a viewy so základnou funkcionalitou.
- Ajax – existuje implicitná podpora v Grails.
- Pluginy – umožňujú rozšíriť funkcionalitu samotného frameworku. V súčasnosti ich existuje veľké množstvo, no ich kvalita je dosť kolísavá.
Groovy
Groovy je objektovo orientovaný jazyk pre platformu Java. Je to dynamický jazyk s vlastnosťami podobnými jazykom Python, Perl, Ruby a Smalltalk. Tiež môže byť použitý ako skriptovací jazyk. Groovy používa javovskú syntax. Je dynamicky kompilovaný do JVM bajtkódu, čiže dokaže spolupracovať s ostatným kódom a knižnicami v Jave. Väčšina kódu v Java je syntakticky valídna aj v Groovy.
Vlastnosti a koncepty Grails
Grails je plnohodnotný framework, pričom sa snaží riešiť väčšinu problémov vývoja webových aplikácií. Okrem iného obsahuje:
- Ľahko použiteľnú ORM (Object Relational Mapping) vrstvu postavenú na Hibernate, ktorá sa nazýva GORM
- Prezenčnú vrstvu využívajúcu GSP/JSP
- Controller vrstvu postavenú na Spring MVC (Model-view-controller)
- Skriptovacie prostredie pre príkazový riadok založené na Gant
- Vstavaný aplikačný server Tomcat
- Podpora pre internacionalizáciu (i18n)
- Transakčnú servisnú vrstvu postavenú na transakčnej abstrakcii Spring-u
Obr. 1: Aplikačný zásobnik Grails
Praktická ukážka
Inštalácia
- Pred použitím samotného frameworku je potrebné nainštalovať Java SDK 1.6+ (obyčajné JRE nestačí) a nastaviť premennú prostredia JAVA_HOME na lokáciu tohto SDK.
- Stiahnuť si aktuálnu verziu Grails.
- Rozbaliť archív.
- Vytvoriť premennú prostredia GRAILS_HOME, ktorá odkazuje na lokáciu, kde ste rozbalili archív.
- Pridať referenciu na popriečinok bin priečinka Grails do premennej prostredia PATH.
- %GRAILS_HOME%\bin – Windows
- $GRAILS_HOME/bin – Unix
- Napísať príkaz ‚grails’ do príkazového riadku. V prípade úspešnej inštalácie sa zobrazí nápoveda Grails.
- Tiež je možné Grails integrovať do IDE Eclipse a NetBeans, pričom k obom vývojovým prostrediam je k dispozícii plugin.
Vytvorenie nového projektu
Po úspešnej inštalácii Grails sa nový projekt vytvorí pomocou príkazu:
grails create-app my-project
Ten vytvorí nový priečinok pomenovaný podľa aplikácie, ktorý obsahuje štruktúru aplikácie:
%PROJECT_HOME%
+ grails-app
+ conf (konfiguračné súbory)
+ hibernate (konfigurácia Hibernate)
+ spring (konfigurácia Spring)
+ controllers (controllery)
+ domain (doménové triedy)
+ i18n (balíky pre internacionalizáciu)
+ services (servisy)
+ taglib (tag knižnice)
+ util (špeciálne pomocné triedy)
+ views (viewy)
+ layouts (layouty)
+ lib
+ scripts (skripty)
+ src
+ groovy (zdrojové súbory Groovy mimo grails-app)
+ java (zdrojové súbory Java)
+ test (testovacie triedy)
+ web-app
+ WEB-INF
Vytvorenie doménovej triedy
Základom väčšiny Grails aplikácií je doménový model, ktorý reprezentuje perzistentné dáta v aplikácii. Vytvorenie novej doménovej triedy je veľmi jednoduché:
cd my-project
grails create-domain-class org.example.Book
Tento príkaz vytvorí zdrojový súbor Book.groovy v priečinku grails-app/domain/org/example. Všetky explicitne zadané atribúty sú ukladané do databázy. Do triedy Book sa pridajú tieto atribúty:
package org.example
class Book {
String title
String author
static constraints = {
title(blank: false)
author(blank: false)
}
}
Pri uložení inštancie triedy Book sa title a author uložia do databázy, pričom o všetko sa postará GORM. Atribút constraints slúži na validáciu požiadaviek na atribúty doménovej triedy. V tomto prípade to znamená, že oba atribúty nesmú byť prazdné (prázdny reťazec/reťazec zložený len z netlačiteľných znakov). V Grails existujú ďalšie vstavané obmedzenia, a tiež je možné vytvoriť si vlastné.
Vytvorenie controllera
Controllery slúžia ako prostredník pri generovaní použivateľského rozhrania alebo poskytujú rozhranie pre REST servisy. Typicky spracuvávajú požiadavky z prehliadača a každá URL je bežne spravovaná jedným controllerom. Grails poskytuje vlastnosť nazývanú scaffolding, ktorá automaticky vytvorí používateľské rozhranie pre doménovú triedu a tiež CRUD akcie, ktoré umožňujú vytvárať nové inštancie, upravovať a mazať ich. Začne sa vytvorením prázdneho controllera:
grails create-controller org.example.Book
V príkaze je zadané meno doménovej triedy, vrátane balíka. Tento príkaz vytvorí zdrojový súbor Book.groovy v priečinku grails-app/controllers/ /org/example/BookController.groovy. Controller sa volá rovnako ako doménová trieda + ‚prípona Controller’.
Súbor bude obsahovať toto:
package org.example
class BookController {
def scaffold = Book // Note the capital "B"
}
Spustenie Grails
Samotná aplikácia sa spustí príkazom:
grails run-app
V konzole sa vypíše URL adresa aplikácie, ktorú treba následne otvoriť v prehliadači a vyskúšať si hotovú aplikáciu.
Generovanie zdrojových súborov
V Grails sa dajú tiež vygenerovať už naplnené controllery a viewy pomocou príkazov:
grails generate-all Book
grails generate-controller Book
grails generate-views Book
Zhodnotenie
Grail je moderný framework pre vývoj webových aplikácií, ktorý dokáže ušetriť veľa času. Navyše sa dá rýchlo osvojiť, lebo využíva už existujúce technológie na báze Javy. Tiež prináša praktické koncepty známe z iných frameworkov. Určite sa ho oplatí vyskúšať si ho.
Zdroje