Grails

20. Január, 2012, Autor článku: Sebestyén Kamil, Informačné technológie, Študentské práce
Ročník 5, číslo 1 This page as PDF 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

  1. 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.
  2. Stiahnuť si aktuálnu verziu Grails.
  3. Rozbaliť archív.
  4. Vytvoriť premennú prostredia GRAILS_HOME, ktorá odkazuje na lokáciu, kde ste rozbalili archív.
  5. Pridať referenciu na popriečinok bin priečinka Grails do premennej prostredia PATH.
    • %GRAILS_HOME%\bin – Windows
    • $GRAILS_HOME/bin – Unix
  6. Napísať príkaz ‚grails’ do príkazového riadku. V prípade úspešnej inštalácie sa zobrazí nápoveda Grails.
  7. 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.


Obr. 2: Hotová aplikácia

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

  1. http://en.wikipedia.org/wiki/Grails_(framework)
  2. http://en.wikipedia.org/wiki/Groovy
  3. http://www.grails.org/Documentation
  4. http://www.infoq.com/minibooks/grails

Napísať príspevok