„Grails” változatai közötti eltérés
javás, webes keretrendszer (csonk) Címke: Kategorizálatlan csonksablon |
(Nincs különbség)
|
A lap 2010. október 20., 15:27-kori változata
Grails | |
Legfrissebb stabil kiadás | 1.2 |
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, ami a Groovy nyelvre, tehát közvetve a Java platformra alapul.
A Grails korábbi neve 'Groovy on Rails' volt, de 2006 márciusában megváltak attól a névtől David Heinemeier Hansson, a Ruby on Rails alkotójának kérésére.[1]
A fejlesztést 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.
Architektúra
grails-app/domain/Cow.groovy |
---|
class Cow {
String name
String color
}
|
A Grails keretrendszer a modell-nézet-vezérlő (Model-View-Controller – MVC) mintát használja.
Modell (Model)
A modell az adatokat reprezentálja. A tartomány-osztályok konvenció szerint a grails-app/domain/ mappában vannak. Egy egyszerű tartományosztály reprezentálhat például teheneket.
Nézet (View)
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 formátumokat. Az elnevezési konvenciót követve a grails-app/views/cow/list.gsp fájlban 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)
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. Egy jellemző művelet lehet a vezérlőben az összes példány listázása.
Perzisztencia
A Grails-ben az alkalmazásfejlesztő csak a tartományosztályokat definiálja, a perzisztencia a keretrendszer dolga. A Grails perzisztenciakezelője a GORM (Grails Object Relational Mapping), ami a 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
A GORM által kezelt tartományosztályok rendelkeznek a következő osztályszintű (static) 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
A GORM által kezelt tartományosztályok példányváltoztó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
Jegyzetek
Irodalom
- 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>
- 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>
- 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>
- 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>
- 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
- a list of companies doing grails development
- GroovyMag for Groovy and Grails developers
- Grails home page
- Groovy home page
- Grails User guide Quick reference guide.
- Grails Screencasts
- 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 Largest Brazilian Grails user group