§GlobalSettingsの削除
依存性注入を使用したい場合は、GlobalSettingsの実装クラスからできるだけ多くのコードを移動することをお勧めします。理想的には、GlobalSettingsクラスを完全に削除できるようにコードをリファクタリングする必要があります。
次に、コードをリファクタリングするためのメソッドごとのガイドを示します。JavaとScalaではAPIがわずかに異なるため、適切なサブセクションにジャンプしてください。
注意: Playの依存性注入についてまだ読んでいない場合は、今すぐ読むことをお勧めします。適切なリンクをクリックして、JavaまたはScalaでのPlayの依存性注入について学んでください。
§Scala
-
GlobalSettings.beforeStartおよびGlobalSettings.onStart: 起動時に発生する必要があるものはすべて、依存性注入されたクラスのコンストラクターで発生する必要があります。クラスは、依存性注入フレームワークがロードするときに初期化を実行します。Eagerな初期化が必要な場合(アプリケーションが実際に開始される前に一部のコードを実行する必要があるため)、Eagerなバインディングを定義します。 -
GlobalSettings.onStop: ストップフックを登録する必要があるクラスにApplicationLifecycleへの依存関係を追加します。次に、GlobalSettings.onStopメソッドの実装を、ApplicationLifecycle.addStopHookに渡されるFutureの中に移動します。詳細については、停止/クリーンアップをお読みください。 -
GlobalSettings.onError:HttpErrorHandlerを継承するクラスを作成し、GlobalSettings.onErrorの実装をHttpErrorHandler.onServerErrorメソッドの中に移動します。詳細については、エラー処理をお読みください。 -
GlobalSettings.onRequestReceived:HttpRequestHandlerを継承するクラスを作成し、GlobalSettings.onRequestReceivedの実装をHttpRequestHandler.handlerForRequestメソッドの中に移動します。詳細については、リクエストハンドラーをお読みください。GlobalSettings.onRequestReceivedの実装でsuper.onRequestReceivedを呼び出している場合は、HttpRequestHandlerの代わりにDefaultHttpRequestHandlerを継承し、super.onRequestReceivedへのすべての呼び出しをsuper.handlerForRequestに置き換える必要があることに注意してください。 -
GlobalSettings.onRouteRequest:DefaultHttpRequestHandlerを継承するクラスを作成し、GlobalSettings.onRouteRequestメソッドの実装をDefaultHttpRequestHandler.routeRequestメソッドの中に移動します。詳細については、リクエストハンドラーをお読みください。 -
GlobalSettings.onRequestCompletion: このメソッドは非推奨であり、Playによって呼び出されなくなりました。代わりに、返されたEnumeratorの結果にonDoneEnumeratingコールバックをアタッチするカスタムフィルターを作成します。HTTPフィルターの作成方法の詳細については、Scala HTTPフィルターをお読みください。 -
GlobalSettings.onHandlerNotFound:HttpErrorHandlerを継承するクラスを作成し、HttpErrorHandler.onClientErrorの実装を提供します。詳細については、エラー処理をお読みください。HttpErrorHandler.onClientErrorは引数にstatusCodeを取るため、実装は以下のようになるはずです。
if(statusCode == play.api.http.Status.NOT_FOUND) {
// move your implementation of `GlobalSettings.onHandlerNotFound` here
}
GlobalSettings.onBadRequest:HttpErrorHandlerを継承するクラスを作成し、HttpErrorHandler.onClientErrorの実装を提供します。詳細については、エラー処理をお読みください。HttpErrorHandler.onClientErrorは引数にstatusCodeを取るため、実装は以下のようになるはずです。
if(statusCode == play.api.http.Status.BAD_REQUEST) {
// move your implementation of `GlobalSettings.onBadRequest` here
}
-
GlobalSettings.configureおよびGlobalSettings.onLoadConfig: 設定ファイルですべての設定を指定するか、独自のApplicationLoaderを作成します(GuiceApplicationBuilder.loadConfigを参照)。 -
GlobalSettings.doFilter:HttpFiltersを継承するクラスを作成し、HttpFilter.filtersの実装を提供します。詳細については、HTTPフィルターをお読みください。
また、GlobalクラスがWithFiltersトレイトをミックスしている場合は、HttpFiltersを継承するFilterクラスを作成し、空のパッケージに配置する必要があります。詳細については、こちらをお読みください。
§Java
-
GlobalSettings.beforeStartおよびGlobalSettings.onStart: 起動時に発生する必要があるものはすべて、依存性注入されたクラスのコンストラクターで発生する必要があります。クラスは、依存性注入フレームワークがロードするときに初期化を実行します。Eagerな初期化が必要な場合(たとえば、アプリケーションが実際に開始される前に一部のコードを実行する必要があるため)、Eagerなバインディングを定義します。 -
GlobalSettings.onStop: ストップフックを登録する必要があるクラスにApplicationLifecycleへの依存関係を追加します。次に、GlobalSettings.onStopメソッドの実装を、ApplicationLifecycle.addStopHookに渡されるPromiseの中に移動します。詳細については、停止/クリーンアップをお読みください。 -
GlobalSettings.onError:HttpErrorHandlerを継承するクラスを作成し、GlobalSettings.onErrorの実装をHttpErrorHandler.onServerErrorメソッドの中に移動します。詳細については、エラー処理をお読みください。 -
GlobalSettings.onRequest:DefaultHttpRequestHandlerを継承するクラスを作成し、GlobalSettings.onRequestメソッドの実装をDefaultHttpRequestHandler.createActionメソッドの中に移動します。詳細については、リクエストハンドラーをお読みください。 -
GlobalSettings.onRouteRequest: Java APIを使用する場合、このメソッドの簡単な移行はありません。これが必要な場合は、Globalクラスをしばらくの間保持する必要があります。 -
GlobalSettings.onHandlerNotFound:HttpErrorHandlerを継承するクラスを作成し、HttpErrorHandler.onClientErrorの実装を提供します。詳細については、エラー処理をお読みください。HttpErrorHandler.onClientErrorは引数にstatusCodeを取るため、実装は以下のようになるはずです。
if(statusCode == play.mvc.Http.Status.NOT_FOUND) {
// move your implementation of `GlobalSettings.onHandlerNotFound` here
}
GlobalSettings.onBadRequest:HttpErrorHandlerを継承するクラスを作成し、HttpErrorHandler.onClientErrorの実装を提供します。詳細については、エラー処理をお読みください。HttpErrorHandler.onClientErrorは引数にstatusCodeを取るため、実装は以下のようになるはずです。
if(statusCode == play.mvc.Http.Status.BAD_REQUEST) {
// move your implementation of `GlobalSettings.onBadRequest` here
}
-
GlobalSettings.onLoadConfig: 設定ファイルですべての設定を指定するか、独自のApplicationLoaderを作成します(GuiceApplicationBuilder.loadConfigを参照)。 -
GlobalSettings.filters:HttpFiltersを継承するクラスを作成し、HttpFilter.filtersの実装を提供します。詳細については、HTTPフィルターをお読みください。
次へ: Anormの移行
このドキュメントにエラーを見つけましたか?このページのソースコードはこちらにあります。ドキュメントのガイドラインを読んだ後、プルリクエストを自由に投稿してください。質問や共有するアドバイスはありますか?コミュニティフォーラムにアクセスして、コミュニティと会話を始めましょう。