Grails - это среда веб-приложений с открытым исходным кодом, в которой используется язык программирования Apache Groovy (который, в свою очередь, основан на платформе Java ). Он задуман как высокопроизводительный фреймворк, следуя парадигме « кодирования по соглашению », предоставляя автономную среду разработки и скрывая большую часть деталей конфигурации от разработчика. [ необходима цитата ]
Разработчики) | Грэм Роше |
---|---|
Первый выпуск | Октябрь 2005 г. |
Стабильный выпуск | 4.0.10 [1] / 8 апреля 2021 г . |
Репозиторий | Репозиторий Grails |
Написано в | Groovy |
Операционная система | Кроссплатформенность |
Платформа | Кроссплатформенность ( JVM ) |
Тип | Фреймворк веб-приложений |
Лицензия | Лицензия Apache 2.0 |
Веб-сайт | grails |
Ранее Grails назывался «Groovy on Rails»; в марте 2006 года это название было отказано в ответ на запрос Дэвида Хайнемайера Ханссона , основателя платформы Ruby on Rails . [2] Работа началась в июле 2005 года, релиз 0.1 состоялся 29 марта 2006 года, а релиз 1.0 был объявлен 18 февраля 2008 года.
Обзор
Grails был разработан для решения ряда задач:
- Предоставьте веб-фреймворк для платформы Java.
- Повторное использование существующих технологий Java, таких как Hibernate и Spring, в едином интерфейсе.
- Предложите последовательную основу для разработки.
- Предлагаем документацию по ключевым частям фреймворка:
- Постоянство рамки.
- Шаблоны с использованием GSP (Groovy Server Pages).
- Библиотеки динамических тегов для создания компонентов веб-страниц.
- Настраиваемая и расширяемая поддержка Ajax .
- Предоставьте образцы приложений, демонстрирующих структуру.
- Обеспечьте полный режим разработки, включая веб-сервер и автоматическую перезагрузку ресурсов.
Высокая продуктивность
У Grails есть три свойства, которые отличают его от традиционных веб-фреймворков Java:
Нет конфигурации XML
Создание веб-приложений на Java традиционно включает настройку сред и фреймворков в начале и во время разработки. Эта конфигурация очень часто экстернализируется в файлах XML, чтобы упростить настройку и избежать встраивания конфигурации в код приложения.
Первоначально XML приветствовался, поскольку он обеспечивал большую согласованность при настройке приложений. Однако в последние годы стало очевидно, что, хотя XML отлично подходит для настройки, настройка среды может быть утомительной. Это может снизить производительность, поскольку разработчики тратят время на понимание и поддержку конфигурации инфраструктуры по мере роста приложения. Добавление или изменение функциональности в приложениях, использующих конфигурацию XML, добавляет дополнительный шаг к процессу изменения, что снижает производительность и может снизить гибкость всего процесса.
Grails избавляет от необходимости добавлять конфигурацию в файлы XML. Вместо этого структура использует набор правил или соглашений при проверке кода приложений на основе Grails. Например, имя класса, которое заканчивается на Controller
(например BookController
), считается веб-контроллером.
Готовая среда разработки
При использовании традиционных наборов веб-инструментов Java разработчики должны собирать модули разработки, что может быть утомительным. Grails предоставляет среду разработки, которая включает веб-сервер, чтобы разработчики могли сразу начать работу. Все необходимые библиотеки являются частью дистрибутива Grails, и Grails автоматически подготавливает веб-среду Java к развертыванию.
Функциональность доступна через миксины
Grails предоставляет динамические методы для нескольких классов через примеси. Примесь - это метод, который динамически добавляется к классу, как если бы функциональность была скомпилирована в программу.
Эти динамические методы позволяют разработчикам выполнять операции без необходимости реализации интерфейсов или расширения базовых классов. Grails предоставляет динамические методы в зависимости от типа класса. Например, в доменных классах есть методы для автоматизации операций сохранения, таких как сохранение, удаление и поиск.
Веб-фреймворк
Веб-фреймворк Grails был разработан в соответствии с парадигмой MVC .
Контроллеры
Grails использует контроллеры для реализации поведения веб-страниц. Ниже приведен пример контроллера:
class BookController { def list () { [ книги: Книга . list () ] } }
Вышеупомянутый контроллер имеет list
действие, которое возвращает модель, содержащую все книги в базе данных. Для создания этого контроллера используется grails
команда, как показано ниже:
Grails создать-контроллер Book
Эта команда создает класс в grails-app/controller
каталоге проекта Grails. Создание класса контроллера достаточно, чтобы Grails распознал его. list
Действие сопоставляется http://localhost:8080/book/list
в режиме разработки.
Взгляды
Grails поддерживает JSP и GSP. В приведенном ниже примере показано представление, написанное на GSP, в котором перечислены книги в модели, подготовленной указанным выше контроллером:
Наши книги
in = "$ {books}" > $ {it.title} ($ { it.author.name})