LoginSignup
0
0

More than 5 years have passed since last update.

GlobalSettingsの削除 / Play2.4【翻訳】

Last updated at Posted at 2017-08-25

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 クラスを作成して空のパッケージに配置する必要があります。 詳細は こちら をご覧ください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0