§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
ヘッダーで指定されたセクションのみを効率的にダウンロードします。JavaとScalaのドキュメントで詳細を参照してください。
§ビルドの追加機能
Akka はバージョンの混在を許可しないため、アプリケーションに Akka モジュールを追加する際は、すべてで一貫したバージョンを使用することが重要です。これを容易にするために、play.core.PlayVersion
オブジェクトには、次のようにビルドで使用できる akkaVersion
変数が追加されました。
import play.core.PlayVersion.akkaVersion
libraryDependencies += "com.typesafe.akka" %% "akka-cluster" % akkaVersion
§言語 Cookie の最大有効期限の設定
言語 Cookie の最大有効期限を設定できるようになりました。そのためには、application.conf
に以下を追加します。
play.i18n.langCookieMaxAge = 15 seconds
デフォルトでは、設定は null
であり、言語 Cookie に最大有効期限が設定されません。
§gzip フィルターのしきい値
gzip フィルターが有効になっている場合、本文サイズに基づいてどのレスポンスを gzip 圧縮するかを制御するためのバイトしきい値を設定できるようになりました。そのためには、application.conf
に次の設定を追加します。
play.filters.gzip.threshold = 1k
本文サイズが指定されたバイトしきい値以下のレスポンスは、圧縮サイズが元の本文サイズよりも大きくなるため、圧縮されません。
本文サイズを判断できない場合(チャンクレスポンスなど)、レスポンスはしきい値を超えていると見なされます。
デフォルトでは、しきい値は 0
(ゼロ)に設定されており、レスポンス本文サイズに関係なくすべてのレスポンスが圧縮されます。
詳細については、gzip フィルターのページを参照してください。
次へ: マイグレーションガイド
このドキュメントにエラーを見つけた場合、このページのソースコードは こちらにあります。ドキュメントガイドライン を読んでから、プルリクエストを送信してください。ご質問やアドバイスがありましたら、コミュニティフォーラム にアクセスして、コミュニティと会話を始めましょう。