LINUX.ORG.RU

Play Framework 2.4 «Damiya»

 , , ,


0

3

Вышла новая версия Play Framework — фреймворка для построения веб-приложений на Scala и Java.

Основное изменение этой версии — поддержка dependency injection (DI). В прошлых версия Play многие компоненты были реализованы в виде глобальных синглтонов, DI поддерживался только для пользовательского кода и добавлялся сторонними плагинами. В этой версии для управления зависимостями был выбран Google Guice, а компоненты Play теперь стали доступны через него. Также была сохранена возможность смены реализации DI, в том числе возможна реализация статического связывания компонентов без использования сторонних фреймворков.

Добавление DI существенно облегчает написание тестов и должно помочь в написании приложений, состоящих из отдельно разрабатываемых модулей.

Также в этой версии:

  • URL routing теперь можно задавать не только в конфигурационном файле, но и с использованием Routing DSL. Предполагается, что такой способ будет более удобен для написания REST-сервисов.
  • Переход на Java 8, который позволил существенно упростить Java API. Также добавлена поддержка новых типов дат в Play JSON.
  • Опциональная возможность использования стандартной для sbt схемы размещения исходных файлов проекта вместо принятой в Play.
  • Продолжена модуляризация компонентов Play: API для работы с базами данных, Anorm и Ebean, были вынесены в отдельные компоненты.
  • Поддержка TLS SNI в http-клиенте WS.
  • Экспериментальная реализация HTTP-backend'а на базе akka-http и реализация Reactive Streams API для работы с HTTP-потоками.

Для пользователей Play 2.3 подготовлено руководство по переходу на 2.4.

Релиз назван “Damiya” в память о Kate von Roeder.

>>> Подробности

★★★★★

Последнее исправление: maxcom (всего исправлений: 9)
Ответ на: комментарий от maxcom

Не знаю как сейчас, а раньше это делалось с помощью запутанных и стремных концепций типа Iteratee, которые внутри были блокирующими. Акторы проще как для программирования так и для понимания и гибче.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Не знаю как сейчас, а раньше это делалось с помощью запутанных и стремных концепций типа Iteratee, которые внутри были блокирующими.

Iteratee/Enumeratee запутанная штука, но асинхронная сама по себе.

maxcom ★★★★★
() автор топика
Ответ на: комментарий от Reset

которые внутри были блокирующими

Это если ты из синхронного InputStream генеришь Enumerator, то появляется элемент блокировки на i/o внутри этого самого InputStream'а. В остальном там всё асинхронное.

Акторы проще как для программирования так и для понимания и гибче.

Да вроде вещи-то ортогональные.

shahid ★★★★★
()
Последнее исправление: shahid (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.