ドキュメント

§Play 2.8 の新機能

このページでは、Play 2.8 の新機能について説明します。Play 2.8 への移行時に必要な変更点については、Play 2.8 マイグレーションガイドを参照してください。

§Akka 2.6

Play 2.8 は、最新のマイナーバージョンの Akka を搭載しています。Akka 2.6 は 2.5 とバイナリ互換性がありますが、デフォルトの設定に変更があり、非推奨の機能の一部が削除されています。変更の詳細については、Akka 2.6 マイグレーションガイドを参照してください。

§Akka Typed

§Akka Typed の Cluster Sharding

Play 2.8 は、Akka Cluster Sharding Typed の依存関係注入をサポートしており、ユーザーは ClusterSharding インスタンスを注入し、Akka Cluster全体でシャード化された型付きアクタを起動できます。

§Jackson 2.10 と新しい ObjectMapper 設定

Jackson の依存関係が最新のマイナーリリースである 2.10に更新されました。

さらに、Play 2.8 より前は、ユーザーがカスタムバインディングを作成する必要があった ObjectMapper の作成と構成方法を提供する代わりに、Play は Akka Jackson サポートを使用して ObjectMapper を提供するようになりました。そのため、Jackson モジュール を追加し、application.conf を使用して 機能 を構成できるようになりました。たとえば、Joda サポート を追加する場合は、次の設定を追加するだけです。

akka.serialization.jackson.play.jackson-modules += "com.fasterxml.jackson.datatype.joda.JodaModule"

数値を文字列として書き込む必要がある場合は、次の設定を追加します。

akka.serialization.jackson.play.serialization-features.WRITE_NUMBERS_AS_STRINGS=true

§Akka Actor Typed の Guice サポート

Akka の「従来の」アクタのバインドに役立つ既存の AkkaGuiceSupport ユーティリティは、Akka 2.6 の新しい 型付きアクタ API をサポートする追加メソッドを取得しました。

Scala で HelloActor をバインドする Guice モジュールを定義する簡単な例を次に示します。

object AppModule extends AbstractModule with AkkaGuiceSupport {
  override def configure() = {
    bindTypedActor(HelloActor(), "hello-actor")
  }
}

同様に、アクタが Akka の Java DSL AbstractBehavior を拡張する Java の例を次に示します。

public final class AppModule extends AbstractModule
    implements AkkaGuiceSupport {
  @Override
  protected void configure() {
    bindTypedActor(HelloActor.class, "hello-actor");
  }
}

詳細については、Akka Typed との統合を参照してください。

§Java 11 サポート

Play 2.8.0 は、Java 11 を正式にサポートする最初のバージョンです。Play、スタンドアロンモジュール、サンプル、シードはすべて、AdoptOpenJDK 8 と 11 でテストされています。デフォルトのバージョンとして Java 8 のサポートを継続します。

§その他の追加機能

§Range 結果の事前シーク ソースのサポート

場合によっては、Range ヘッダーを含む要求に対する結果を返す際に、Source を事前にシークできます。たとえば、アプリケーションが Alpakka S3 コネクタ を使用している場合、Range ヘッダーで指定されたセクションのみを効率的にダウンロードします。JavaScalaのドキュメントで詳細を参照してください。

§ビルドの追加機能

Akka はバージョンの混在を許可しないため、アプリケーションに Akka モジュールを追加する際は、すべてで一貫したバージョンを使用することが重要です。これを容易にするために、play.core.PlayVersion オブジェクトには、次のようにビルドで使用できる akkaVersion 変数が追加されました。

import play.core.PlayVersion.akkaVersion

libraryDependencies += "com.typesafe.akka" %% "akka-cluster" % akkaVersion

言語 Cookie の最大有効期限を設定できるようになりました。そのためには、application.conf に以下を追加します。

play.i18n.langCookieMaxAge = 15 seconds

デフォルトでは、設定は null であり、言語 Cookie に最大有効期限が設定されません。

§gzip フィルターのしきい値

gzip フィルターが有効になっている場合、本文サイズに基づいてどのレスポンスを gzip 圧縮するかを制御するためのバイトしきい値を設定できるようになりました。そのためには、application.conf に次の設定を追加します。

play.filters.gzip.threshold = 1k

本文サイズが指定されたバイトしきい値以下のレスポンスは、圧縮サイズが元の本文サイズよりも大きくなるため、圧縮されません。

本文サイズを判断できない場合(チャンクレスポンスなど)、レスポンスはしきい値を超えていると見なされます。

デフォルトでは、しきい値は 0(ゼロ)に設定されており、レスポンス本文サイズに関係なくすべてのレスポンスが圧縮されます。

詳細については、gzip フィルターのページを参照してください。

次へ: マイグレーションガイド


このドキュメントにエラーを見つけた場合、このページのソースコードは こちらにあります。ドキュメントガイドライン を読んでから、プルリクエストを送信してください。ご質問やアドバイスがありましたら、コミュニティフォーラム にアクセスして、コミュニティと会話を始めましょう。