Введение

Фреймворк веб-приложений с открытым исходным кодом Grails - это фреймворк веб-приложений с открытым исходным кодом, который использует язык программирования Apache Groovy (который, в свою очередь, основан на платформе Java). Он предназначен для высокой производительности, следуя парадигме "кодирования по конвенции", обеспечивая автономную среду разработки и скрывая большую часть деталей конфигурации от разработчика. Grails ранее был известен как "Groovy on Rails"; в марте 2006 года это название было убрано в ответ на просьбу Дэвида Хайнемайера Ханссона, основателя фреймворка Ruby on Rails. Работа началась в июле 2005 года, с выпуском 0.1 29 марта 2006 года, а выпуск 1.0 был объявлен 18 февраля 2008 года.

Нет конфигурации XML

Создание веб-приложений на Java традиционно включает в себя настройку среды и фреймворков в начале и во время разработки. Эта конфигурация очень часто экстернализируется в XML-файлах, чтобы облегчить конфигурацию и избежать встраивания конфигурации в код приложения. XML был первоначально приветствован, поскольку он обеспечивал большую согласованность для конфигурации приложений. Однако в последние годы стало очевидно, что, хотя XML отлично подходит для конфигурации, настройка среды может быть утомительной. Это может снизить производительность, поскольку разработчики тратят время на понимание и поддержание конфигурации фреймворка по мере роста приложения. Добавление или изменение функциональных возможностей в приложениях, использующих конфигурацию XML, добавляет дополнительный шаг к процессу изменения, что замедляет производительность и может уменьшить гибкость всего процесса. Grails устраняет необходимость добавления конфигурации в XML-файлах. Вместо этого, в рамках используется набор правил или конвенций при проверке кода приложений на основе Grails. Например, имя класса, которое заканчивается контролером (например, BookController), считается веб-контроллером.

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

При использовании традиционных Java веб-инструментов, это зависит от разработчиков, чтобы собрать единицы разработки, которые могут быть утомительными. Grails предоставляет среду разработки, которая включает в себя веб-сервер, чтобы разработчики могли начать работу сразу. Все необходимые библиотеки являются частью дистрибутива Grails, и Grails готовит веб-среду Java для автоматического развертывания.

Функциональность, доступная через миксин

Grails представляет динамические методы на нескольких классах через миксин. Миксин - это метод, который добавляется к классу динамически, как если бы функциональность была компилирована в программу. Эти динамические методы позволяют разработчикам выполнять операции без необходимости внедрения интерфейсов или расширения базовых классов. Grails предоставляет динамические методы, основанные на типе класса. Например, классы доменов имеют методы автоматизации операций постоянства, таких как сохранение, удаление и поиск

Сетевые рамки

Веб-фреймворк Grails был разработан в соответствии с парадигмой MVC.

Методы

Когда класс определяется как доменный класс, то есть управляемый GORM, методы динамически добавляются, чтобы помочь сохранить экземпляры класса.

Предыдущие модели баз данных

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

Интеграция с платформой Java

Grails построен на вершине и является частью платформы Java, что означает, что его очень легко интегрировать с библиотеками Java, фреймворками и существующими базами кода. Grails предлагает прозрачную интеграцию классов, которые отображаются в карте Hibernate ORM. Это означает, что существующие приложения, использующие Hibernate, могут использовать Grails без перекомпилирования кода или переконфигурирования классов Hibernate при использовании методов динамической персистентности, обсужденных выше. Одним из последствий этого является то, что эскафолдинг может быть настроен для классов Java, отображаемых с помощью Hibernate. Еще одним следствием является то, что возможности веб-фреймворка Grails полностью доступны для этих классов и приложений, которые их используют. Grails также использует Spring Inversion of Control Framework; Grails на самом деле является приложением Spring MVC под капотом. Весенние рамки могут быть использованы для обеспечения дополнительных весенних бобов и внедрения их в контекст заявки. Фреймворк SiteMesh используется для управления уровнем презентации, упрощая разработку страниц с помощью надежной системы шаблонов. Приложения Grails упаковываются как военные артефакты, которые могут быть развернуты в любом контейнере сервлетов или серверах приложений Java EE.