Grails

Grails — фреймворк для создания веб-приложений, написанный на скриптовом языке Groovy, который является одним из языков программирования с Java-подобным синтаксисом, работающим на платформе Java. Grails создан под сильным влиянием широко известного Ruby on Rails и основан на шаблоне «Модель-представление-поведение» (MVC). Фреймворк был создан с целью привлечь интерес пользователей к платформе Java и дать Java-разработчикам возможности для быстрого построения веб-приложений с лёгкостью и гибкостью, которая была недоступна прежде.

Grails
Тип фреймворк для создания веб-приложений
Разработчик Steven Devijver, Graeme Rocher
Написана на Groovy, Java
Операционная система кроссплатформенное ПО на Java
Первый выпуск 2005
Последняя версия 4.0.10 (2021 год)
Лицензия Apache License 2.0
Сайт grails.org

Разработка продукта ведётся с июля 2005. Первый релиз 0.1 был выпущен в марте 2006 г.

Краткое описание

Grails разрабатывается с несколькими целями:

  • Предоставить высокопродуктивный фреймворк для веб-разработки для платформы Java.
  • Совместимость с проверенными технологиями Java, такими как Hibernate и Spring.
  • Предложить непротиворечивый, единообразный фреймворк, что позволит избавиться от неопределённостей и упростит изучение.
  • Документировать только те части фрэймворка, которые имеют значение для пользователей.
  • Предложить пользователям то, что они хотят видеть в областях часто сложных и противоречивых:
    • Мощная и непротиворечивая поддержа персистенции (сохранности данных).
    • Мощные и лёгкие в использовании шаблоны страниц (view), использующие GSP (Groovy Server Pages).
    • Динамические библиотеки тегов для лёгкого создания компонентов веб-страниц.
    • Хорошая поддержка Ajax, легко расширяемая и настраиваемая под цели разработчика Grails — Ajax(библиотеки: jQuery (по умолчанию), Rico, Prototype, Dojo и YUI — с помощью плагинов).
  • Предоставить примеры приложений, которые демонстрируют возможности данного фреймворка.
  • Обеспечить режим разработки, включающий встроенный веб-сервер и автоматическую перегрузку ресурсов.

Высокая производительность разработки

В Grails три характеристики значительно повышают производительность разработчика по сравнению с традиционной Java веб-разработкой:

  • Отсутствие XML конфигураций
  • Готовая к использованию среда разработки
  • Функциональность, доступная благодаря использованию примесей (mixins)

Установка и настройка

1) Скачайте с сайта архив с последней версией и разархивируйте его в место для таких программ.

2) Установите сначала Java JDK, а потом Groovy.

3) Для Windows:

а) Откройте командную строку(или терминал) "как Администратор" (cmd.exe) и введите для установки системной переменной GRAILS_HOME и добавления ее в системную переменную PATH:

setx -m GRAILS_HOME "C:\Program Files\grails4"
setx -m path "%path%;%GRAILS_HOME%\bin"

Закройте терминал.Теперь переменные установлены.

б) Или сделайте это вручную по пути : (правый клик мыши) на "Мой Компьютер" (Computer) - Свойства (Properties) - Расширенные системные настройки (Advanced system settings) - Дополнительно (Advanced) - Переменные среды (Environment Variables)

Для Linux в shell наберите для установки системной переменной и добавления ее в PATH:

export GRAILS_HOME=/path/to/grails-4.0.10
export PATH="$PATH:$GRAILS_HOME/bin

4) Проверяем работу установленной Командной строки Grails:

В командной строке наберите: grails -v

Должно появиться что-то подобное:

| Grails Version: 4.0.10
| Groovy Version: 3.0.8
| JVM Version: 16

Войти в интерактивный режим, для работы с фреймворком и набора команд, можно просто набрав grails в терминале.

Фреймворк

Так как Grails был разработан согласно парадигме Модель-представление-поведение, то три составляющие этой парадигмы (модель, представление и контроллер) определяют работу этого фреймворка. Для создания проекта можно использовать - командную строку для Grails с командой:

grails create-app my-project-name

Эта команда grails запустит проект на встроенном веб-сервере который будет доступен по адресу http://localhost:8080/:

grails run-app

Контроллер

Grails использует контроллеры для определения как себя будет вести представление. Пример контроллера:

 class BookController {
    def list() {
       [ books: Book.findAll() ]
    }
 }

Контроллер имеет метод list который возвращает все книги из базы данных, взятые у модели Book. Для создания контроллера из командной строки используется команда grails:

grails create-controller BookController

Это команда создаёт контроллер с именем BookController в каталоге grails-app/controllers проекта. Для вызова метода list нужно вызвать http://localhost:8080/book/list.

Модель

Модель в Grails отображается на базу данных используя GORM (Grails Object Relational Mapping). Классы модели хранятся в каталоге проекта grails-app/domain и могут быть созданы командой grails:

grails create-domain-class Book

Пример созданного класса модели:

 class Book {
    String title
    Person author
 }

Механизм сохранения данных в GORM реализован через Hibernate. Таким образом база данных может быть спроецирована в GORM классы используя стандартные Hibernate mapping файлы.

Представление

Grails поддерживает JSP и GSP. Пример ниже показывает пример страницы GSP которая отображает список книг в модели, через метод findAll, которую предоставил контроллер в методе list:

<html>
  <head>
    <title>Our books</title>
  </head>
  <body>
    <ul>
      <g:each in="${books}">
        <li>${it.title} (${it.author.name})</li>
      </g:each>
    </ul>
  </body>
</html>

Скаффолдинг

Скаффолдинг - метод генерации методов CRUD для выборки данных из БД:

class SomeController {
    static scaffold = Book
}

Открыв в браузере http://localhost:8080/book можно получить CRUD интерфейс для всех операций над сущностью.

Интеграция с Java

Grails сделан как часть платформы Java, и это означает, что его очень легко можно использовать вместе с Java библиотеками, фреймворками и существующей базой кода.

Кем используется

Компанией SAP на базе Groovy/Grails разрабатывается фреймворк Composition On Grails для быстрой разработки веб приложений для платформы SAP NetWeaver 7.1 CE, который включает в себя SAP-специфичные расширения для Web Dynpro, Enterprise Web Services и BAPI.

См. также

  • Groovy
  • Griffon — GUI-фреймворк, основанный на идеях Grails

Журнал

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.