playframework の https://playframework.com/documentation/2.6.x/GlobalSettings の scala 部分を google 翻訳した
GlobalSettingsの削除
依存関係注入を利用したい場合は、できるだけ多くのコードを GlobalSettings
実装クラスから外すことをお勧めします。理想的には、 GlobalSettings
クラスを完全に排除できるように、コードをリファクタリングできる必要があります。
次に、コードをリファクタリングするためのメソッドバイステップのガイドを示します。 JavaとScalaではAPIが若干異なるため、適切なサブセクションに移動してください。
注: まだプレイの依存関係注入について読んでいない場合は、今すぐ行うようにしてください。 Play with Java または Scala の依存関係注入については、該当するリンクに従ってください。
Scala
GlobalSettings.beforeStart
および GlobalSettings.onStart
: 起動時に発生する必要があるものは、依存関係注入クラスのコンストラクタで発生しているはずです。依存性注入フレームワークがクラスをロードするとき、クラスはその初期化を実行します。熱心な初期化が必要な場合(アプリケーションが実際に起動する前にコードを実行する必要があるため)、 熱心なバインディングを定義します 。
GlobalSettings.onStop
: ストップフックを登録する必要があるクラスの ApplicationLifecycle
に依存関係を追加します。次に、 ApplicationLifecycle.addStopHook
に渡された Future
内で、 GlobalSettings.onStop
メソッドの実装を移動します。詳細については、 停止/クリーンアップ をお読みください。
GlobalSettings.onError
: HttpErrorHandler
から継承するクラスを作成し、 HttpErrorHandler.onServerError
メソッド内で GlobalSettings.onError
の実装を移動します。詳細については、 エラー処理 を参照してください。
GlobalSettings.onRequestReceived
: HttpRequestHandler
から継承するクラスを作成し、 HttpRequestHandler.handlerForRequest
メソッド内で GlobalSettings.onRequestReceived
の実装を移動します。詳細は、リクエストハンドラ を参照してください。
GlobalSettings.onRequestReceived
実装で super.onRequestReceived
を呼び出す場合は、 HttpRequestHandler
ではなく DefaultHttpRequestHandler
から継承し、 super.onRequestReceived
へのすべての呼び出しを super.handlerForRequest
に置き換える必要があることに注意してください。
GlobalSettings.onRouteRequest
: DefaultHttpRequestHandler
から継承するクラスを作成し、 DefaultHttpRequestHandler.routeRequest
メソッド内で GlobalSettings.onRouteRequest
メソッドの実装を移動します。詳細は、リクエストハンドラ を参照してください。
GlobalSettings.onRequestCompletion
:このメソッドは廃止され、Playでは呼び出されなくなりました。代わりに、返された列挙子の結果に onDoneEnumerating
コールバックを添付するカスタムフィルタを作成します。 httpフィルタを作成する方法の詳細については、 Scala Http Filters を参照してください。
GlobalSettings.onHandlerNotFound
: HttpErrorHandler
から継承するクラスを作成し、 HttpErrorHandler.onClientError
の実装を提供します。詳細については、 エラー処理 を参照してください。
HttpErrorHandler.onClientError
は引数で statusCode
を取るので、実装は以下のようになるはずです。
if(statusCode == play.api.http.Status.NOT_FOUND){
//ここで `GlobalSettings.onHandlerNotFound`の実装を移動します
}
GlobalSettings.onBadRequest
: HttpErrorHandler
から継承するクラスを作成し、 HttpErrorHandler.onClientError
の実装を提供します。詳細については、 エラー処理 を参照してください。
HttpErrorHandler.onClientError
は引数で statusCode
を取るので、実装は以下のようになるはずです。
if(statusCode == play.api.http.Status.BAD_REQUEST){
//ここで `GlobalSettings.onBadRequest`の実装を移動します
}
GlobalSettings.configureとGlobalSettings.onLoadConfig
: 設定ファイルのすべての設定を指定するか、独自のApplicationLoaderを作成します( GuiceApplicationBuilder.loadConfig を参照)。
GlobalSettings.doFilter
: HttpFilters
を継承するクラスを作成し、 HttpFilter.filters
の実装を提供します。詳細については、 Http Filters を参照してください。
また、 Global
クラスが WithFilters
trait を混合している場合は、 HttpFilters を継承する Filter クラスを作成して空のパッケージに配置する必要があります。 詳細は こちら をご覧ください。