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

playframework の https://playframework.com/documentation/2.6.x/GlobalSettings の scala 部分を google 翻訳した

# GlobalSettingsの削除

依存関係注入を利用したい場合は、できるだけ多くのコードを `GlobalSettings` 実装クラスから外すことをお勧めします。理想的には、 `GlobalSettings` クラスを完全に排除できるように、コードをリファクタリングできる必要があります。

次に、コードをリファクタリングするためのメソッドバイステップのガイドを示します。 JavaとScalaではAPIが若干異なるため、適切なサブセクションに移動してください。

**注：** まだプレイの依存関係注入について読んでいない場合は、今すぐ行うようにしてください。 Play with [Java](https://playframework.com/documentation/2.6.x/JavaDependencyInjection) または [Scala](https://playframework.com/documentation/2.6.x/ScalaDependencyInjection) の依存関係注入については、該当するリンクに従ってください。

## Scala

**`GlobalSettings.beforeStart`** および **`GlobalSettings.onStart`** : 起動時に発生する必要があるものは、依存関係注入クラスのコンストラクタで発生しているはずです。依存性注入フレームワークがクラ​​スをロードするとき、クラスはその初期化を実行します。熱心な初期化が必要な場合（アプリケーションが実際に起動する前にコードを実行する必要があるため）、 [熱心なバインディングを定義します](https://playframework.com/documentation/2.6.x/ScalaDependencyInjection#Eager-bindings) 。

`GlobalSettings.onStop` : ストップフックを登録する必要があるクラスの [`ApplicationLifecycle`](https://playframework.com/documentation/2.6.x/api/scala/play/api/inject/ApplicationLifecycle.html) に依存関係を追加します。次に、 `ApplicationLifecycle.addStopHook` に渡された `Future` 内で、 `GlobalSettings.onStop` メソッドの実装を移動します。詳細については、 [停止/クリーンアップ](https://playframework.com/documentation/2.6.x/ScalaDependencyInjection#Stopping/cleaning-up) をお読みください。

**`GlobalSettings.onError`** : [`HttpErrorHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpErrorHandler.html) から継承するクラスを作成し、 `HttpErrorHandler.onServerError` メソッド内で `GlobalSettings.onError` の実装を移動します。詳細については、 [エラー処理](https://playframework.com/documentation/2.6.x/ScalaErrorHandling) を参照してください。

**`GlobalSettings.onRequestReceived`** : [`HttpRequestHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpRequestHandler.html) から継承するクラスを作成し、 `HttpRequestHandler.handlerForRequest` メソッド内で `GlobalSettings.onRequestReceived` の実装を移動します。詳細は、[リクエストハンドラ](https://playframework.com/documentation/2.6.x/ScalaHttpRequestHandlers) を参照してください。
`GlobalSettings.onRequestReceived` 実装で `super.onRequestReceived` を呼び出す場合は、 `HttpRequestHandler` ではなく [`DefaultHttpRequestHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/DefaultHttpRequestHandler.html) から継承し、 `super.onRequestReceived` へのすべての呼び出しを `super.handlerForRequest` に置き換える必要があることに注意してください。

**`GlobalSettings.onRouteRequest`** : [`DefaultHttpRequestHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/DefaultHttpRequestHandler.html) から継承するクラスを作成し、 `DefaultHttpRequestHandler.routeRequest` メソッド内で `GlobalSettings.onRouteRequest` メソッドの実装を移動します。詳細は、[リクエストハンドラ](https://playframework.com/documentation/2.6.x/ScalaHttpRequestHandlers) を参照してください。

**`GlobalSettings.onRequestCompletion`** :このメソッドは廃止され、Playでは呼び出されなくなりました。代わりに、返された列挙子の結果に `onDoneEnumerating` コールバックを添付するカスタムフィルタを作成します。 httpフィルタを作成する方法の詳細については、 [Scala Http Filters](https://playframework.com/documentation/2.6.x/ScalaHttpFilters) を参照してください。

**`GlobalSettings.onHandlerNotFound`** : [`HttpErrorHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpErrorHandler.html) から継承するクラスを作成し、 `HttpErrorHandler.onClientError` の実装を提供します。詳細については、 [エラー処理](https://playframework.com/documentation/2.6.x/ScalaErrorHandling) を参照してください。 
`HttpErrorHandler.onClientError` は引数で `statusCode` を取るので、実装は以下のようになるはずです。

```scala
if(statusCode == play.api.http.Status.NOT_FOUND){
  //ここで `GlobalSettings.onHandlerNotFound`の実装を移動します
}
```

**`GlobalSettings.onBadRequest`** : [`HttpErrorHandler`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpErrorHandler.html) から継承するクラスを作成し、 `HttpErrorHandler.onClientError` の実装を提供します。詳細については、 [エラー処理](https://playframework.com/documentation/2.6.x/ScalaErrorHandling) を参照してください。
`HttpErrorHandler.onClientError` は引数で `statusCode` を取るので、実装は以下のようになるはずです。

```scala
if(statusCode == play.api.http.Status.BAD_REQUEST){
  //ここで `GlobalSettings.onBadRequest`の実装を移動します
}
```

**`GlobalSettings.configureとGlobalSettings.onLoadConfig`** : 設定ファイルのすべての設定を指定するか、独自のApplicationLoaderを作成します（ [GuiceApplicationBuilder.loadConfig](https://playframework.com/documentation/2.6.x/ScalaDependencyInjection#Advanced:-Extending-the-GuiceApplicationLoader) を参照）。

**`GlobalSettings.doFilter`** : [`HttpFilters`](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpFilters.html) を継承するクラスを作成し、 `HttpFilter.filters` の実装を提供します。詳細については、 [Http Filters](https://playframework.com/documentation/2.6.x/ScalaHttpFilters) を参照してください。

また、 `Global` クラスが `WithFilters` trait を混合している場合は、 [HttpFilters](https://playframework.com/documentation/2.6.x/api/scala/play/api/http/HttpFilters.html) を継承する Filter クラスを作成して空のパッケージに配置する必要があります。 詳細は [こちら](https://playframework.com/documentation/2.6.x/ScalaHttpFilters) をご覧ください。