Grails
Grails | |
![]() | |
Legfrissebb stabil kiadás | 3.2.7 (2017. március 6.) |
Programozási nyelv | Groovy |
Operációs rendszer | platformfüggetlen |
Kategória | webes keretrendszer |
Licenc | Apache Software License 2.0 |
A Grails weboldala |
A Grails egy nyílt forráskódú webes keretrendszer, mely a Java platformra illetve a Groovy nyelvre épül.
A fejlesztés 2005 júliusában kezdődött, a 0.1 verzió 2006. március 29-én jelent meg, az 1.0 verzió 2008. február 18-án.
A projekt eredeti neve 'Groovy on Rails' volt, de 2006 márciusában David Heinemeier Hansson, a Ruby on Rails alkotójának kérésére átkeresztelték az informálisan már egyébként is használt rövidebb Grails névre.[1]
Architektúra
[szerkesztés]grails-app/domain/Cow.groovy |
---|
class Cow {
String name
String color
}
|
A Grails keretrendszer az MVC mintát használja.
Modell (Model)
[szerkesztés]A modell az adatokat reprezentálja. A domain osztályok konvenció szerint a grails-app/domain/ könyvtárban vannak.
Nézet (View)
[szerkesztés]A nézetek az adatokat jelenítik meg a felhasználók felé, illetve felhasználói interakciókat fogadnak. Mivel a Grails webes keretrendszer, a nézetek weboldalként jelennek meg. A Grails támogatja a JSP és a GSP technológiákat. Az elnevezési konvenciót követve a grails-app/views/cow/list.gsp fájlba kerül az a nézet, amely a CowController vezérlő list akciójához tartozik. Az elnevezések alapján a keretrendszer automatikusan elvégzi a hozzárendelést. Az alábbi példa egy GSP-ben írt nézetet mutat:
grails-app/views/cow/list.gsp
|
---|
<html>
<head>
<title>Teheneink teljes listája</title>
</head>
<body>
<h2>Teheneink teljes listája</h2>
<ul>
<g:each in="${cows}">
<li>${it.name} (${it.name})</li>
</g:each>
</ul>
</body>
</html>
|
Vezérlő (Controller)
[szerkesztés]grails-app/controllers/CowController.groovy |
---|
class CowController {
def list = {
[ cows: Cow.findAll() ]
}
}
|
A vezérlők állítják elő a nézetektől kapott felhasználói inputok alapján a megjelenítendő adatszerkezeteket a nézetek számára. A konvenció szerint a vezérlők a grails-app/controllers/ mappában vannak. A vezérlő tipikus művelete például az összes példány listázása.
Perzisztencia
[szerkesztés]A Grails-ben az alkalmazásfejlesztő csak a domain osztályokat definiálja, a perzisztencia a keretrendszer dolga. A Grails perzisztenciakezelője a GORM (Grails Object Relational Mapping), ami a Hibernate perzisztáló mechanizmusára épít. Minden osztályhoz automatikusan hozzárendeli az id és a version adatmezőket és generálja a perzisztáláshoz szükséges metódusokkal.[2][3]
Osztálymetódusok
[szerkesztés]A GORM által kezelt domain osztályok rendelkeznek a következő statikus metódusokkal:
metódus | magyarázat | példa |
---|---|---|
count()
|
Az adott osztályból tárolt rekordok száma az adatbázisban. | def cowCount = Cow.count()
|
exists()
|
Igazat ad vissza, ha létezik adott típusú rekord. | def cowExists = Cow.exists(1)
|
find()
|
Visszaadja a feltételnek megfelelő első rekordot. | def cow = Cow.find("from Cow c where c.color = ?", [ 'Lila' ])
|
findAll()
|
Visszaadja a feltételnek megfelelő rekordok listáját. | def cows = Cow.findAll("from Cow c where c.color = ?", [ 'Lila' ])
|
findBy*()
|
Visszaadja a mintának megfelelő első rekordot. | def cow = Cow.findByColor("lila")
|
findBy*Like()
|
Visszaadja a mintának megfelelő első rekordot. | def cow = Cow.findByColorLike("li%")
|
findAllBy*()
|
Visszaadja a mintának megfelelő rekordok listáját. | def cows = Cow.findAllByColor("lila")
|
findAllBy*Like()
|
Visszaadja a mintának megfelelő rekordok listáját. | def cows = Cow.findAllByColorLike("li%")
|
findWhere()
|
Visszaadja az első olyan rekordot, ami megfelel a feltételeknek. | def cow = Cow.findWhere(color:"lila")
|
A lekérdezőnyelv szintaxisa HQL (Hibernate Query Language). |
Példánymetódusok
[szerkesztés]A GORM által kezelt domain osztályok példányváltozói mindig rendelkeznek a következő perzisztáló metódusokkal:
Metódus | Magyarázat | Példa |
---|---|---|
save()
|
Menti az adott rekordot adatbázisba. | cow.save()
|
delete()
|
Törli az adott rekordot adatbázisból. | cow.delete()
|
refresh()
|
Aktualizálja az adott rekord állapotát az adatbázisból. | cow.refresh()
|
ident()
|
Visszaadja az rekord azonosítóját az adatbázisból. | cow.ident()
|
Lásd még
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ Dropping Groovy on Rails name. [2007. november 7-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. szeptember 15.)
- ↑ Grails Object Relational Mapping (GORM). [2008. május 9-i dátummal az eredetiből archiválva]. (Hozzáférés: 2010. február 14.)
- ↑ Domain Class Dynamic Methods & Properties. [2008. május 14-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. szeptember 15.)
Irodalom
[szerkesztés]- Brown, Jeff & Rocher, Graeme (January 15, 2009), The Definitive Guide to Grails (2nd ed.), Apress, pp. 648, ISBN 1590599950, <http://www.apress.com/book/view/1590599950>. Hozzáférés ideje: 2010-02-14 Archiválva 2010. március 5-i dátummal a Wayback Machine-ben
- Smith, Glen & Ledbrook, Peter (June 28, 2009), Grails in Action (1st ed.), Manning Publications, pp. 520, ISBN 1933988932, <http://www.manning.com/gsmith/>
- Dickinson, Jon (May 27, 2009), Grails 1.1 Web Application Development (1st ed.), Packt Publishing, pp. 328, ISBN 1847196683, <http://www.packtpub.com/grails-1-0-web-application-development/book>
- Abdul-Jawad, Bashar (December 2, 2008), Groovy and Grails Recipes (1st ed.), Apress, pp. 424, ISBN 143021600X, <http://www.apress.com/book/view/143021600X>. Hozzáférés ideje: 2010-02-14 Archiválva 2010. január 2-i dátummal a Wayback Machine-ben
- Fischer, Robert (April 20, 2009), Grails Persistence with GORM and GSQL (1st ed.), Apress, pp. 125, ISBN 1430219262, <http://www.apress.com/book/view/1430219262>. Hozzáférés ideje: 2009-10-22 Archiválva 2009. december 16-i dátummal a Wayback Machine-ben
- M. Judd, Christopher; Nusairat, Joseph Faisal & Shingler, Jim (June 18, 2008), Beginning Groovy and Grails: From Novice to Professional (1st ed.), Apress, pp. 440, ISBN 1430210451, <http://www.apress.com/book/view/1430210451>. Hozzáférés ideje: 2009-10-22 Archiválva 2009. augusztus 19-i dátummal a Wayback Machine-ben
- Rudolph, Jason (February 6, 2007), Getting Started with Grails (1st ed.), Lulu.com, pp. 132, ISBN 143030782X, <http://www.infoq.com/minibooks/grails>
Külső hivatkozások
[szerkesztés]- a list of companies doing grails development Archiválva 2010. október 24-i dátummal a Wayback Machine-ben
- GroovyMag for Groovy and Grails developers
- Grails home page
- Groovy home page
- Grails User guide Quick reference guide.
- Grails Screencasts Archiválva 2010. október 16-i dátummal a Wayback Machine-ben
- Introduction To Grails, by Jeff Brown, Principal Software Engineer, Object Computing, Inc. (OCI)
- Getting Started with Grails, by Jason Rudolph, as part of the InfoQ Enterprise Development series of books - available as a free PDF download to registered users
- Grails Tutorial Gentle introduction to Grails
- Grails Brasil Archiválva 2009. június 21-i dátummal a Wayback Machine-ben Largest Brazilian Grails user group