Play Framework. Часть #1. Введение.
Сегодня мы поговорим о Play Framework
Play - это java web framework, на нем можно строить как и обычные сайты, так и rest api. Это достаточно молодой фреймворк, куда моложе чем spring. Изначально он задумывался исключительно как Java фреймворк. Но начиная с версии 2.0 он стал заточен под Scala, и Java отошла на второй план, но до сих пор поддерживается и ее поддержку отменять не собираются.
Рассмотрим возможности фреймворка
Play достаточно мощный фреймворк, проще сказать то, чего он не умеет, нежели наборот. Рассмотрим сугубо поверхностно то, что он умеет. В его арсенале находятся самые свежие технологии, такие как
- WebSocket
- Асинхронное выполнение
- Тестирование
- Работа с базами данных
- Процессинг JSON
- Процессинг XML
- Сессии/Куки
- Потоковые Response
- Гибкий роутинг
- Композиция экшенов
- Фильтры
- Модули
- Встроенный шаблонизатор
- Формы
- ORM
- Кэширование
- Встроенный OAuth2 клиент
- Интеграция с Akka
- IoC, в Play это Google Guice
- Логгеры
- Конфигурация в стиле Hocon
И это еще не полный список. Полный можно посмотреть на официальном сайте. Но на самом деле, что может немного обидеть нас, Джавистов. Это то, что поддержка Java - это второстепенное дело для них, версия фреймворка для Scala имеет больше возможностей. И по факту для нас написали просто Java оболочку которая оборачивает Scala версию фреймворка.
Три... Два... Один... Пуск!
В этой статье мы рассмотрим первоначальный запуск фреймворка. Для того чтобы запустить фреймворк, нам нужно скачать activator. Для этого переходим по этой ссылке и жмем на ссылку "Offline Distribution", да, активатор весит дофига :).
После того как скачается активатор Вам нужно будет добавить его bin папку в переменную PATH. После того как вы это сделали, уже спокойно можно создавать проект. Для этого в терминале введите следующую команду.
activator new <project_name>
Вместо <project_name> введите имя проекта. Давайте создадим проект example. Для этого введите следующую команду.
activator new example
Вы увидите следующее окно.
Здесь play нам предлагает выбрать шаблон с которым мы будем создавать проект. Нам как джавистам должно быть интересно только три шаблона.
- minimal-akka-java-seed
- minimal-java
- play-java
Рассмотрим каждый по чуть-чуть.
minimal-akka-java-seed - Это минимальный набор с которым можно начать разрабатывать свое приложение. Оно не включает демонстрации и документацию.
minimal-java - Это тоже самое что и предыдущий пример, но насколько мне известно (это не точная информация) отличие в том, что в minimal-java нет интеграции с akka. Но это может быть не точная информация. Документация как-то не особо освещает этот момент.
play-java - Это самый частоиспользуемый шаблон, с него мы и начнем. Этот шаблон включает в себя документацию и примеры кода.
Продолжим. В предложенном нам выборе мы выбираем 5-ый шаблон. Просто вводим цифру "5" и продолжаем (жмем enter).
В первый раз инициализация займет некоторое время, потому что activator будет качать некоторый список библиотек, при следующих созданиях проектов этого происходить не будет. После того как проект создастся надо перейти в его директорию и запустить его. Активатор создает папку проекта в той директории из который вызывалась команда activator new. Соответственно для проекта example у нас создалась папка example. Выполните следующие комманды для запуска проекта
# Переходим в папку с проектом
cd ./example
# Запускаем проект
activator run
Первая команда наверное для многих известна - это переход в папку example из текущей директории. Вторая команда запускает проект. Что команда запуска проекта сработала, нужно обязательно перейти в папку с самим проектом.
После того как вы увидели в консоле следующий вывод:
Это означает что проект был успешно запущен и можно перейти на домашнюю страницу. Для этого в браузере перейдите по адресу http://127.0.0.1:9000/. При первом переходе вы увидите задержку, в это время play компилирует проект. Так же, обратите внимание на то, что при изменении файлов проекта не нужно будет перезапускать проект, watcher активатора будет автоматически перекомпилировать проект. После перехода по ссылке вы увидите следующую страницу.
Это локальная документация которую вы сможете читать без доступа к интернету. Play имеет несколько встроенных примеров кода и enpoint'ов. Советую посмотреть их.
В следующих статьях мы рассмотрим структуру проекта, каталогов и обсудим исходный код.
На этом все, спасибо! Задавайте вопросы в комментариях.
