ПредишенСледващото

Това съдържание е част от поредицата: Работа с Grails

Останете на линия за предстоящите статии в тази серия.

Познаването Grails започвам с друг свободен инфраструктура за развитието на уеб-базирани приложения: Руби на релси. Когато Rails се появи, той привлече много разработчици. Възможности скеле, вградена в релси, ви позволява да започнете нов проект за по-малко време, отколкото когато и да било. Идеята за "конфигурация на споразумения" (конвенция над конфигурация), в основата на релси, позволява на приложенията да "събере" себе си най-много, на базата на разумна схема за именуване, а не тромави и податлива на грешки в конфигурацията на XML-файлове. Възможности Ruby metaprogramming позволяват обекти, за да "магически" да се наследяват методите и полетата, които са им необходими по време на работа, без да задръствате изходния код.

Rails Инфраструктурни заслужават и все още заслужава одобрение, което е получил, но той поставя на Java разработчиците са изправени пред трудни въпроси. Дали да се откаже от Java-известен платформа за обещанията на новата платформа? И какво да прави със съществуващите Java код, съществуващите корпоративни сървъри и персонал от опитни Java програмисти?

За тази серия

Grails - модерна инфраструктура за развитието на уеб-базирани приложения, която съчетава добре познати на Java технологии като пролетта и Hibernate, с модерни техники като "конвенция над конфигурация". Написано в Groovy, Grails безпроблемно се интегрира със съществуващите Java код, добавяйки, гъвкавостта и динамиката на скриптов език. След като научава Grails вашите възгледи за развитието на уеб-базирани приложения ще се променят безвъзвратно.

Тук влиза в действие Grails. Grails предоставя същите характеристики на дизайна, когато релсите, като същевременно се поддържа силна връзка с доказани Java, свързани с технологии. Но Grails - това не е просто "един клонинг" Rails, пренесени към платформата Java. Grails е научил уроците, научени в релсите и ги комбинират с модерни тенденции в Java-програмиране. Тя е по-скоро за развитие Rails, отколкото просто да прехвърли на новата платформа.

възможности Groovy

Точно както Rails е дълбоко обвързани с езика за програмиране Ruby, Grails нямаше да съществува без Groovy характеристики (вж. Ресурси). Groovy - е динамичен език, който работи на JVM и безпроблемно се интегрира с езика Java. Ако четете една дълга поредица от статии Практически Groovy на developerWorks уеб-сайт, а след това вече сте запознати с възможностите на езика. Ако не, тогава не се притеснявайте, в процеса на усвояване на Grails ще трябва да се научи много за Groovy. Тя не трябва да бъде трудно, тъй като Groovy е специално проектиран, за да се хареса на Java-разработчици.

Например, Groovy може значително да се намали броят на Java код, който обикновено трябва да напишете. Това не е необходимо да се напише получи и настройка на методите за достъп до области като Groovy ги предоставя автоматично. Не е необходимо да се напише тип структура за Итераторът аз = list.iterator () за извършване на една линия на списък с елементи; list.each дизайн прави същото нещо по-плътно и ясно. Казано по-просто, Groovy - това е начинът на езика Java ще изглежда, ако са написани в двадесет и първи век.

Groovy не биха привлекли Java програмисти, все пак, за да се възползва от него, трябваше да пренапише изцяло приложения. За щастие, Groovy безпроблемно се интегрира със съществуващите код. Groovy език не замества Java езика, и да го подобрява. Groovy може бързо да се научи за един ден като Groovy-код - за Java-код. Тези два езика са толкова последователни, че можете да преименувате работа .java файл в .groovy файл (например, преименувате Person.java Person.groovy файла), и да получите абсолютно правилно (и изпълним) Groovy файл, въпреки че няма да използвате синтаксис предимства, предоставени от рутинен.

Това дълбоко съвместимост между Groovy и Java език означава, че Grails не е необходимо да "изобретяваме колелото", когато става въпрос да въведете вътрешен технология. Вместо това, тя ви позволява да погледнете запознати с Java библиотека по отношение на Groovy. тип JUnit тестови TestCase скриптове трябва да Groovy черупка и се представят като обекти GroovyTestCase тип. Grails е нова гледна точка на мравката изграждане скриптове от GANT на - версия на Ant, които се продават изключително в Groovy. Grails места за хибернация "тънък" Groovy-фасада, наречена Горм (Grails обекта релационни съответствия - Grails разширяване на обектно-релационни съответствия). Това са само три примера за това как Grails ви позволява да използвате всички на опита, натрупан в Java, като същевременно осигурява предимствата на модерните техники за уеб-разработка.

Но за да се оцени напълно Grails, да започнем с това, че е необходимо да се учи в практиката. Това е време, за да инсталирате Grails и да се създаде първата уеб-базирано приложение.

Инсталиране Grails

Всичко, което е необходимо, за да изпълните Grails-приложението се намира в един ZIP-файл. Всички зависими библиотеки - Groovy, Пролет, и хибернация, както и много други - вече е на място и готов за употреба. За да инсталирате Grails трябва:

  1. Изтеглете и разархивирайте grails.zip файла с Grails уеб-сайт (вж. Ресурси).
  2. Задайте променлива GRAILS_HOME среда.
  3. Добавяне на път $ GRAILS_HOME / бин към променливата PATH среда.

Разбира се, трябва да имате инсталирана версия на JDK. (Grails е добра, но все още не е толкова добър). Grails 1.0 могат да работят на Java 1.4, 1.5 и 1.6. Ако не сте сигурни коя версия е инсталирана, тип Java -version в командния ред. Ако е необходимо, изтеглете и инсталирайте JDK версията, която е съвместима с Grails (см. Ресурси).

След извършване на инсталацията трябва да въведете граали -version в командния ред за проверка на инсталацията. Ако видите на следния приветственото съобщение, това означава, че всичко е конфигуриран правилно:

Web-сървър и база данни, включени

Използването на безплатни продукти

Прилагането на този член ще се използва уеб-сървър и база данни, която идва безплатно с Grails. Следната статия ще представи стъпка по Grails работят на други сървъри. Можете да посетите и grails.org уеб-сайт и да се запознаят с отличен онлайн документация (см. Ресурси).

Интересно е, че да тече Grails-заявление се изисква отделно инсталиран уеб-сървър. Grails идва със собствен вграден сървлет контейнер - Jetty. Просто въведете Grails стартирате приложението. и приложението се стартира в Jetty контейнер (см. ресурси) без да се налага да мине през обичайните етапи на инсталацията. Работещи Grails-прилагане на съществуващия сървър корпоративно приложение също не е проблем. Когато въвеждате граали война. стандартен файл ще бъде създаден, които могат да бъдат инсталирани на Tomcat, JBoss, Geronimo, WebSphere® или всеки сървлет контейнер съвместима с Java EE 2.4.

Също така, тя не изисква отделна база данни, инсталирана. Grails кораби с данни в базата данни HSQLDB (вж. Ресурси), написана изцяло на Java. Наличие на базата данни вече е готов за употреба, дава значителен тласък на производителността. Използвайте различна база данни, например, MySQL, PostgreSQL, Oracle Database или DB2 също така е лесно благодарение на хибернация и Горм. Ако има JAR-файл, свързани с JDBC-водача и настройки за стандартна връзка, една промяна, която трябва да платите DataSource.groovy файл за промяна на приложението да използва друга база данни.

Създаване на първите Ви Grails-приложения

Пътувам много - най-малко 40 пътувания годишно. Открих, че календарите имат огромна помощ за мен, като ми казваше, че трябва да съм някъде, но тя не каже къде е това място. В онлайн карти имат обратния проблем: те правят отлична работа с въпроса "къде", но не и с въпроса "кога". Ето защо, в тази и следващите няколко статии в тази серия ще бъдат подготвени Grails специфични за приложение, което ще помогне за решаването на проблемите ", където" а "кога", когато планирате пътуване.

Внимание, спойлер!

Първо трябва да влиза в празна директория и да влезе Grails създаване на команда приложение трип-планиране. След избухването на дейността ще видите каталог трип-планиране. Подобно на Maven, релси и AppFuse, Grails създава структура директория по подразбиране за потребителя. Ако мислите, че това е безнадеждно ви лимит, а инфраструктурата е невъзможно да се работи, ако не можете да създадете свой собствен щателно директория дърво, много е вероятно по-забавно да работи с Grails вие не получават. Споразумение. на първия компонент на принципа на "Споразумение за конфигуриране", ви позволява да правите всякакви Grails-приложение и веднага да видите кои компоненти са налице и когато те се съхраняват.

След това отидете в директорията на трип-планиране и въведете командата граали създаде домейн класа пътуване. Ако всичко върви добре, ще има два файла: граали ап / домейн / Trip.groovy и граали ап / тест / интеграция / TripTests.groovy. Тестване ще бъдат разгледани в следващата статия. В същото време, ние се фокусираме върху класа на домейн, който започва, както е показано на Обява 1:

Списък 1. класове домейни, генерирани от Grails

Макар и да не гледам това, но ние ще поправим това чрез добавяне на полета в класа на пътуване. както е показано на Обявата 2:

Обява 2. клас пътуване с добавени полета

Както вече споменахме, не е нужно да се притеснявате за създаването на GET () и да зададете () - метод, тъй като Groovy ги динамично генериране. Class Trip също така включва много нови и полезни динамични методи, чиито имена говорят сами за себе си:

  • Trip.save () съхранява данните в таблицата за пътуване в базата данни HSQLDB.
  • Trip.delete () премахва данните от таблицата за пътуване.
  • Trip.list () връща списък от обекти пътуване.
  • Trip.get () връща Trip копие.

Всички тези и други методи са на ваше разположение. Имайте предвид, че пътуването не се простира на класа и класа родител не се реализира "магия" интерфейс. Със силата на Groovy metaprogramming тези методи просто се появяват в съответното място в съответните класове. (Тези методи са свързани с данните, които се съхраняват в база данни, само получават класове в граали ап / директория на домейна).

Създаване на контролера и видове

Създаване на клас за района на взрива - това е само първата стъпка. Всеки модел се изисква да завърши картината добър контролер и няколко вида. Предполага се, че читателят е запознат с MVC модела (Model-View-Controller - Model-View-Controller) (. Виж ресурси). В командния ред: граали генерират всичко пътуване. да се създаде клас граали ап / контролери / TripController.groovy и съответен набор от ОСП страници (Groovy Server Pages - Groovy Server Pages) в директория граали ап / възгледи / пътуване. За всеки тип списък действия в контролера има съответен list.gsp файл. За да създадете действие има create.gsp файл. Тук, на практика стават видими ползи "за конфигуриране на споразумението": не се нуждае от XML-файл за картографиране елементи. Всеки клас има двойка зоната на взрива като контролер с подходящо име. Ако е необходимо, тази конфигурация е базирана на имената, можете да се придвижва, но в повечето случаи, просто следвайте споразумението и дали ще работи веднага.

Помислете файлови граали ап / контролер / TripController.groovy, показан на Обява 3:

Обява 3. клас TripController

Е, къде да използвате този тип събиране HashMap. Помислете файлови граали ап / възгледи / list.gsp, показан на Обява 4:

Обява 4. File list.gsp

list.gsp файла - по същество е прост HTML документ с малко количество GroovyTagLibs (библиотеки Groovy-тагове). Всичко преди всичко на стойност гр префикс. Groovy-маркер. Обявата 4 маркер през всички обекти в Trip tripList тип колекция ArrayList и изгражда една маса, която отговаря на синтаксиса HTML.

За да разберете как контролери работят, трябва да се разбере "три R": връщане (гръб), пренасочи (пренасочи) и да се показват (генериране на графичен дисплей). Някои видове действия да се възползват от косвената възвръщаемост. който да извежда данни на страницата GSP със същото име. Други действия се пренасочват. Например, ефектът от вида на индекса се нарича, ако потребителят не разполага с вида на действие в URL адрес:

В този случай, TripController клас пренасочва към действието на списък. преминаване по всички параметри (като QueryString или предмет (заявка низ)) в събирането на HashMap типа Поколения назад.

И накрая, тип действие спаси (см. Обява 5) няма съответстваща save.gsp страница. Той пренасочва към страницата с шоу действие. ако записът е бил записан в базата данни без грешка. В противен случай, той показва create.gsp страница, където можете да видите грешките, възникнали и се опитайте действието отново.

Обява 5. тип действие спасяване

Въпреки това, вместо просто да обсъждаме как работи Grails, си струва да го видите в действие.

работещо приложение

Въведете граали стартирате приложението команден ред. След Log4j набор от послания, изведени на конзолата, за да се покаже съобщение със следния текст:

Ако порт 8080 вече се изпълнява на сървъра, което води до програмата забие ще се появи грешка със съобщението:

Има два начина да се променят лесно в пристанището, която работи Jetty. Можете да направите тази промяна в движение, като напишете граали -Dserver.port = 9090 навечерието ап. За да направите тази промяна постоянно, трябва да $ GRAILS_HOME /scripts/Init.groovy файл намерете реда, който започва с serverPort. и промяна на стойността:

След Grails вече е факт на избрания порт, можете да въведете URL на уеб-браузъра. Това би трябвало да започне началната страница със списък на всички контролери, както е показано на Фигура 1:

Фигура 1. Начален екран на Grails-приложения

Работа с граали cozdanie първи граали приложенията

Работа с граали cozdanie първи граали приложенията

Тогава ще трябва да кликнете върху TripController на връзката. и ще ви бъде представен пълен CRUD-приложение (създават, четат, актуализиране, изтриване - да се създаде, да вземе, актуализиране, заличаване), която трябва да работи с.

Нови пътувания са създадени с помощта на страницата е показано на Фигура 2:

Фигура 2. Page Създайте екскурзия (създаване на пътуване)

Работа с граали cozdanie първи граали приложенията

Работа с граали cozdanie първи граали приложенията

Редактиране на пътувания с помощта на страницата е показано на Фигура 3:

Фигура 3. Page Списък Trip (списък на пътувания)

Работа с граали cozdanie първи граали приложенията

Работа с граали cozdanie първи граали приложенията

Така че колко време отне да се изгради и стартирате приложението? И колко време е отнело на реда код? Научете повече за това по следния метод:

  1. Натиснете Ctrl-C за спиране Grails.
  2. Въведете Grails статистика.

Следните данни ще бъдат отпечатани на екрана:

За изпълнение на функционалността на приложението изисква най-малко 100 реда код. Не е зле, но преди приключване на статията би искал да покаже още една възможност Grails.

Generation контролер и видове - това е чудесно упражнение, както и наличието на физическите файлове на диска илюстрира как всички части са свързани помежду си. Все пак, нека да премахне съдържанието на TripController на класа и да го замени със следното съдържание:

Това един ред код показва Grails да направи същото нещо, което е направено с предходната контролер, с едно изключение: генериране на всички списъка за действие. Запаметяване и редактиране на динамичен - директно в паметта по време на изпълнение. Три реда код, вместо да отбележи гол за абсолютно същото поведение на заявлението 66.

Въведете отново граали работят приложението. Да, всички записи няма, но това не е страшно. Grails Изключете клавишната комбинация Ctrl-C и вида в командния ред граали прод навечерието приложението. Приложението ще стартира в режим на работа, което означава, че данните ще бъдат запазени между рестартира сървъра. Отново, ние преминаваме през TripController и да запази някои записи. Поведението на заявление не вижда никаква разлика. Разбирането, че всичко, което се показва в уеб-браузъра, при условие, 15 реда код, то дава представа за силата и възможностите на Grails.

заключение

Надявам се, че се насладиха на първата запознаване с Grails. В този малък пакет опаковани огромна възможност, а ние просто отвори черупката си. Инсталиране на инфраструктура изисква едва ли повече усилия, отколкото обикновен архив разопаковане. Създаване на заявление от нулата изисква команда вход двойка. Надяваме се, че тази обиколка на забележителностите в читателят подхранва интерес Grails. Надяваме се, че той е поставил основите за по-нататъшно разширяване на този пример, а вие имате нови и интересни посоки.

В същото време, аз препоръчвам да се практикува с Groovy и Grails и мога да ви уверя, че вашите възгледи за уеб-дизайн коренно променени.

Изтегляне ресурси

Свързани теми

Свързани статии

Подкрепете проекта - споделете линка, благодаря!