Grály (rámec) - Grails (framework)
tento článek obsahuje obsah, který je napsán jako reklama.Říjen 2010) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojáři | Graeme Rocher |
---|---|
První vydání | Říjen 2005 |
Stabilní uvolnění | 4.0.2 / 21. února 2020 |
Úložiště | Úložiště grálů |
Napsáno | Báječný |
Operační systém | Cross-platform |
Plošina | Cross-platform (JVM ) |
Typ | Rámec webových aplikací |
Licence | Licence Apache 2.0 |
webová stránka | grály |
Grály je otevřený zdroj rámec webových aplikací který používá Apache Groovy programovací jazyk (který je zase založen na Java platforma ). Je zamýšlen jako vysoce produktivní rámec sledováním „kódování konvencí „paradigma, poskytující samostatné vývojové prostředí a skrývající většinu detailů konfigurace před vývojářem.[Citace je zapotřebí ]
Grails byl dříve známý jako „Groovy on Rails“; v březnu 2006 bylo toto jméno zrušeno v reakci na žádost od David Heinemeier Hansson, zakladatel Ruby on Rails rámec.[1] Práce začaly v červenci 2005, vydání 0.1 dne 29. března 2006 a vydání 1.0 oznámené 18. února 2008.
Přehled
Grails byl vyvinut s cílem splnit řadu cílů:
- Poskytněte webový rámec pro platformu Java.
- Znovu použijte stávající technologie Java, jako je Přezimovat a Jaro pod jediným rozhraním
- Nabídka konzistentního vývojového rámce.
- Nabídněte dokumentaci pro klíčové části rámce:
- The Vytrvalost rámec.
- Šablony využívající GSP (Groovy Server Pages).
- Knihovny dynamických značek pro vytváření komponent webových stránek.
- Přizpůsobitelné a rozšiřitelné Ajax Podpěra, podpora.
- Poskytněte ukázkové aplikace, které ukazují rámec.
- Poskytněte kompletní vývojový režim, včetně webového serveru a automatického opětovného načtení prostředků.
Vysoká produktivita
Grails má tři vlastnosti, které jej odlišují od tradičních webových rámců Java:
Žádná konfigurace XML
Vytváření webových aplikací v Javě tradičně zahrnuje konfiguraci prostředí a rámců na začátku a během vývoje. Tato konfigurace je velmi často externalizována v souborech XML, aby se usnadnila konfigurace a zabránilo se vložení konfigurace do kódu aplikace.
XML byl zpočátku vítán, protože poskytoval větší konzistenci při konfiguraci aplikací. V posledních letech se však ukázalo, že ačkoli XML je skvělý pro konfiguraci, může být zdlouhavé nastavit prostředí. To může snížit produktivitu, protože vývojáři tráví čas porozuměním a udržováním konfigurace rámce, jak aplikace roste. Přidání nebo změna funkčnosti v aplikacích, které používají konfiguraci XML, přidává do procesu změny další krok, který zpomaluje produktivitu a může snížit hbitost celého procesu.
Grails odstraňuje nutnost přidávat konfiguraci do souborů XML. Místo toho rámec používá sadu pravidel nebo konvencí při kontrole kódu aplikací založených na Grails. Například název třídy, který končí Ovladač
(například BookController
) je považován za webový řadič.
Ready-to-use vývojové prostředí
Pokud používáte tradiční webové sady Java, je na vývojářích, aby sestavili vývojové jednotky, což může být zdlouhavé. Grails poskytuje vývojové prostředí, které zahrnuje webový server, který vývojářům umožní hned začít. Všechny požadované knihovny jsou součástí distribuce Grails a Grails automaticky připravuje webové prostředí Java pro nasazení.
Funkce dostupná prostřednictvím mixinů
Grails nabízí dynamické metody na několika třídách prostřednictvím mixinů. Mixin je metoda, která se přidává do třídy dynamicky, jako by byla funkce zkompilována do programu.
Tyto dynamické metody umožňují vývojářům provádět operace bez nutnosti implementovat rozhraní nebo rozšiřovat základní třídy. Grails poskytuje dynamické metody založené na typu třídy. Například doménové třídy mají metody pro automatizaci operací perzistence, jako je ukládání, mazání a hledání
Webový rámec
Webový rámec Grails byl navržen podle MVC paradigma.
Řadiče
Grails používá ovladače k implementaci chování webových stránek. Níže je uveden příklad řadiče:
třída BookController { def seznam() { [ knihy: Rezervovat.seznam() ] }}
Řadič výše má a seznam
akce, která vrací a Modelka obsahující všechny knihy v databázi. Chcete-li vytvořit tento řadič, grály
je použit příkaz, jak je znázorněno níže:
grails create-controller Book
Tento příkaz vytvoří třídu v grails-app / controller
adresář projektu Grails. Vytvoření třídy řadiče je dostatečné k tomu, aby ji Grails rozpoznal. The seznam
akční mapy do http: // localhost: 8080 / kniha / seznam
ve vývojovém režimu.
Pohledy
Grály podporuje JSP a GSP. Níže uvedený příklad ukazuje pohled napsaný v GSP, který uvádí seznam knih v modelu připravených výše uvedeným ovladačem:
<html> <head> <title>Naše knihy</title> </head> <body> <ul> v =„$ {books}“> <li>$ {it.title} ($ {it.author.name})</li> </g:each> </ul> </body></html>
Tento pohled by měl být uložen jako grails-app / views / book / list.gsp
projektu Grály. Toto místo se mapuje na BookController
a seznam
akce. Umístění souboru na toto místo je dostatečné k tomu, aby ho Grails rozpoznal.
Je tam také Odkaz na značku GSP dostupný.
Dynamické knihovny značek
Grails poskytuje velké množství knihovny značek po vybalení z krabice. Můžete však také snadno vytvořit a znovu použít své vlastní knihovny značek:[2]
třída ApplicationTagLib { def formatDate = { attrs, tělo -> ven << Nový Jáva.text.SimpleDateFormat(attrs.formát).formát(attrs.datum) }}
The formatDate
knihovna značek nad formáty a java.util.Date
namítat proti Tětiva
. Tuto knihovnu značek je třeba přidat do grails-app / taglib / ApplicationTagLib.groovy
soubor nebo soubor končící na TagLib.groovy
v grails-app / taglib
adresář.
Níže je úryvek ze souboru GSP, který používá formatDate
knihovna značek:
<g:formatDate format="yyyyMMdd" date="${myDate}"/>
Chcete-li v GSP použít knihovnu dynamických značek, není nutné používat žádné značky pro import. Lze použít také dynamické knihovny značek JSP soubory, i když to vyžaduje trochu více práce. [1]
Vytrvalost
Modelka
Doménový model v Grails je přetrvává do databáze pomocí GORM (Relační mapování objektů Grails). Třídy domén jsou uloženy v grails-app / doména
adresář a lze jej vytvořit pomocí grály
příkaz, jak je znázorněno níže:
grails create-domain-class Book
Tento příkaz požaduje název třídy domény a vytvoří příslušný soubor. Pod kódem Rezervovat
třída je zobrazena:
třída Rezervovat { Tětiva titul Osoba autor}
Vytvoření této třídy je vše, co je nutné k tomu, aby byla spravována pro trvalost Grails. S Grails 0.3 byl vylepšen GORM a např. přidá ID vlastnosti a samotnou verzi do třídy domény, pokud nejsou k dispozici. Vlastnost id se používá jako primární klíč odpovídající tabulky. Vlastnost verze se používá pro optimistické zamykání.
Metody
Když je třída definována jako doménová třída, tj. Ta, kterou spravuje GORM, jsou dynamicky přidávány metody, které pomáhají při zachování instancí třídy. [2]
Metody dynamické instance
The Uložit()
metoda uloží objekt do databáze:
def rezervovat = Nový Rezervovat(titul:„Da Vinciho kód“, autor:Autor.findByName(„Dan Brown“))rezervovat.Uložit()
The vymazat()
metoda odstraní objekt z databáze:
def rezervovat = Rezervovat.findByTitle(„Da Vinciho kód“)rezervovat.vymazat()
The Obnovit()
metoda obnovuje stav objektu z databáze:
def rezervovat = Rezervovat.findByTitle(„Da Vinciho kód“)rezervovat.Obnovit()
The ident ()
metoda načte identitu objektu přiřazenou z databáze:
def rezervovat = Rezervovat.findByTitle(„Da Vinciho kód“)def id = rezervovat.ident()
Metody Dynamic Static (Class)
The počet()
metoda vrací počet záznamů v databázi pro danou třídu:
def bookCount = Rezervovat.počet()
The existuje ()
metoda vrací true, pokud v databázi existuje objekt s daným identifikátorem:
def knihaExistuje = Rezervovat.existuje(1)
The nalézt()
metoda vrací první objekt z databáze na základě příkazu dotazu na objekt:
def rezervovat = Rezervovat.nalézt(„z knihy b, kde b.title =?“, [ „Da Vinciho kód“ ])
Syntaxe dotazu je Hibernate HQL.
The findAll ()
metoda vrací všechny objekty existující v databázi:
def knihy = Rezervovat.najít vše()
The findAll ()
metoda může také vzít příkaz dotazu na objekt pro vrácení seznamu objektů:
def knihy = Rezervovat.najít vše(„z knihy“)
The findBy * ()
metody vrátí první objekt z databáze, který odpovídá konkrétnímu vzoru:
def rezervovat = Rezervovat.findByTitle(„Da Vinciho kód“)
Taky:
def rezervovat = Rezervovat.findByTitleLike("%Da Vinci%")
The findAllBy * ()
metody vrací seznam objektů z databáze, které odpovídají konkrétnímu vzoru:
def knihy = Rezervovat.findAllByTitleLike("%")
The findWhere * ()
metody vrátí první objekt z databáze, který odpovídá sadě pojmenovaných parametrů:
def rezervovat = Rezervovat.najít kde(titul:„Da Vinciho kód“)
Lešení
Grály podporuje lešení podporovat CRUD operace (vytváření, čtení, aktualizace, mazání). Libovolnou třídu domény lze vygenerovat vytvořením řadiče lešení, jak je znázorněno níže: Any domain class can be scaffolded by creating a scaffolding controller as shown below:
třída BookController { statický lešení = skutečný}
Vytvořením této třídy můžete provádět operace CRUD http: // localhost: 8080 / kniha
. Funguje to, protože BookController se řídí stejnou konvencí pojmenování jako doménová třída Book. Chcete-li vygenerovat určitou třídu domény, mohli bychom na tuto třídu odkazovat přímo ve vlastnosti lešení:
třída SomeController { statický lešení = Rezervovat}
V současné době Grails neposkytuje lešení pro sdružení.
Starší databázové modely
Mechanismus vytrvalosti v GORM je implementován prostřednictvím Přezimovat. Starší databáze jako takové lze mapovat na třídy GORM pomocí standardu Mapování režimu spánku soubory.
Cílová skupina
Cílová skupina pro Grails je:
- Vývojáři Java nebo Groovy, kteří hledají integrované vývojové prostředí pro vytváření webových aplikací.
- Vývojáři bez zkušeností s Java hledají prostředí s vysokou produktivitou pro vytváření webových aplikací.[Citace je zapotřebí ]
Integrace s platformou Java
Grails je postaven na vrcholu platformy Java a je její součástí, což znamená, že je velmi snadné ji integrovat do knihoven, rámců a existujících kódových základen Java. Grails nabízí transparentní integraci tříd, které jsou mapovány s Přezimovat ORM rámec. To znamená, že stávající aplikace, které používají Hibernate, mohou používat Grails bez překompilování kódu nebo překonfigurování tříd Hibernate při použití výše popsaných metod dynamické perzistence. [3]
Důsledkem toho je, že lešení lze konfigurovat pro třídy Java mapované pomocí Hibernate. Dalším důsledkem je, že možnosti webového rámce Grails jsou plně k dispozici pro tyto třídy a aplikace, které je používají.
Grály také využívají Jaro Inverze kontroly Rámec; Grails je ve skutečnosti jarní MVC aplikace pod kapotou.[3] Rámec Spring lze použít k zajištění dalších jarních fazolí a jejich zavedení do kontextu aplikace. The SiteMesh framework se používá ke správě prezentační vrstvy, což zjednodušuje vývoj stránek pomocí robustního šablonového systému.[4]
Aplikace Grails jsou zabaleny jako válečné artefakty, které lze nasadit do libovolného kontejneru servletu nebo aplikačních serverů Java EE.
Viz také
- Groovy (programovací jazyk)
- JRuby
- Griffon (kostra), desktopový framework inspirovaný Grailsem
- Spring Roo
- Srovnání webových frameworků
Reference
Tento článek obsahuje seznam obecných Reference, ale zůstává z velké části neověřený, protože postrádá dostatečné odpovídající vložené citace.Říjen 2012) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
- Brown, Jeff; Rocher, Graeme (15. ledna 2009), Definitivní průvodce grály (2. vyd.), Apress, str. 648, ISBN 1-59059-995-0
- Smith, Glen; Ledbrook, Peter (28. června 2009), Grály v akci (1. vyd.), Manning Publications, str. 520, ISBN 1-933988-93-2
- Abdul-Jawad, Bashar (2. prosince 2008), Groovy a grály recepty (1. vyd.), Apress, str. 424, ISBN 978-1-4302-1600-1
- Fischer, Robert (20. dubna 2009), Perzistence Grails s GORM a GSQL (1. vyd.), Apress, str. 125, ISBN 1-4302-1926-2, archivovány z originál 16. prosince 2009, vyvoláno 22. října 2009
- M. Judd, Christopher; Nusairat, Joseph Faisal; Shingler, Jim (18. června 2008), Začátek Groovy and Grails: Od nováčka po profesionála (1. vyd.), Apress, str.440, ISBN 1-4302-1045-1
- Rudolph, Jason (6. února 2007), Začínáme s grály (1. vyd.), Lulu.com, str. 132, ISBN 1-4303-0782-X
externí odkazy
- Oficiální webové stránky
- Domovská stránka Groovy
- Výukový program pro začátečníky série výukových programů pro osvojení rámce Grails
- Zvládnutí grálů 18dílný online kurz poskytovaný společností IBM (od roku 2008)
- Poradenství a podpora Grails
- Výukové kurzy Grálu - vyučují členové týmu OCI Grails
- Slabý kanál Grails - zdroj technické podpory a sdílení nápadů
- Novinky a události Grálu