Grails (фреймворк)


Grails - это среда веб-приложений с открытым исходным кодом, в которой используется язык программирования Apache Groovy (который, в свою очередь, основан на платформе Java ). Он задуман как высокопроизводительный фреймворк, следуя парадигме « кодирования по соглашению », предоставляя автономную среду разработки и скрывая большую часть деталей конфигурации от разработчика. [ необходима цитата ]

Ранее 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
  • Готовая среда разработки
  • Функциональность доступна через миксины

Нет конфигурации 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})