Вышла новая версия 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.
>>> Подробности