Pull to refresh

Отличный Java MVC фреймворк — Play Framework

Reading time 2 min
Views 48K
Добрый день!

Не так давно, мне потребовался инструмент или фреймворк, для того чтобы в краткие сроки, создать небольшой сайт — витрину. Особых требований не было. Собственно, сама витрина и простейшая админка, с возможностью подредактировать параметры публикуемого контента. Главным требованием была скорость. Нужно было сделать это все за 1-2 дня, с учетом необходимости верстки дизайна.


Мои метания в поисках инструмента для реализации этого проекта прекратились когда мой френд tonyvelichko кинул мне ссылку на playframework.org


После просмотра демо-видео, мной овладел определенный скепсис, так как обычно подобные «волшебные» решения либо не работают, либо работают плохо. Однако этот инструмент работает. И работает хорошо!

Через час, после знакомства с фреймворком, я понял что лучше инструмента для моей задачи я не найду.

Почему?

Фреймворк заточен на то чтобы как можно быстрее начать разрабатывать и при этом сразу видеть промежуточный результат

Внутри фреймворка находится embeded web-сервер и кастомный classloader. Что нам это дает? В первую очередь запуск проекта без предварительной настройки томкэтов итд + перекомпиляция исходных кодов на лету. То есть добавили новый обработчик, обновили страницу — он подхватывается. Исключения надо сделать для прекомпиленных ресурсов: плагинов, библиотек, итд. При добавлении библиотеки, приложение необходимо перезапускать

Фреймворк уже включает в себя инструменты первой необходимости и позволяет не тратить времени на их первоначальную настройку

Хотите поддержку БД? Ок, вот вам embeded JPA(Hibernate), основанный на настройку через аннотации. Плюс разработанный супер-класс для бинов, позволяющий свести заморочки с EntityManager к нулю

Хотите лог? Ок, пишите Logger.error(throwable, String). log4j уже настроили за вас.

Хотите валидацию форм? Пожалуйста, формы могут подхватывать аннотации полей бинов.

Хотите админку? Не вопрос, одной строчкой в конфиг-файле подключается модуль CRUD, который предоставляет интерфейс для редактирования объектов, хранящихся в БД, при этом имеет большие возможности для кастомизации представлений атрибутов объекта итд

Хотите проверку безопасности? Импортируем модуль security и описываем сам процесс логина — проверку пароля итд. Несложно.

Симпатичный template-engine

Основа движка — Groovy.
Много возможностей, построение логических условий, инклюды других шаблонов, объявление переменных.
Движок умеет формировать урлы для ajax-запросов к конкретному контроллеру, есть тэг #{form} который сам пропишет нужный экшен и.т.д.

Фреймворк опенсорсный и поддерживает сторонние плагины.

Уже существует множество сторонних плагинов, позволяющих, к примеру, интегрироваться с MongoDB, GAE итд
полный список официально опубликованных плагинов содержится на странице www.playframework.org/modules

TDD

Существует режим запуска в режиме тестирования, автоматическое выполнение ряда тестов, удобный интерфейс тестирования

Краткое послесловие


Данная статья, ни в коем случае не претендует на полный обзор фреймворка. Это скорее попытка зацепить, вызвать интерес к симпатичному и удобному инструменту веб-разработки на Java. А от роста сообщества, конечный продукт только выиграет =)

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

Let's Play!
Tags:
Hubs:
+43
Comments 78
Comments Comments 78

Articles