スコープをまたいでインジェクトする場合
You can safely inject objects from a larger scope into an object from a smaller scope. For example, you can inject an Http session-scoped object into an HTTP request-scoped object. However, injecting into objects with larger scopes is a different story. For example, if you injected a request-scoped object into a singleton, at best, you would get an error due to not running within an HTTP request, and at worst your singleton object would always reference an object from the first request. In these cases, you should inject a Provider
大きなスコープのオブジェクトを、小さなスコープのオブジェクトへインジェクトする場合は安全です。たとえば、Http セッションスコープのオブジェクトをHpptリクエストスコープのオブジェクトへインジェクトすることができます。しかしながら、大きなスコープのオブジェクトへインジェクトする場合は、話が変わります。たとえば、リクエストスコープのオブジェクトをシングルトンにインジェクトする場合、最も良い場合でも、Httpリクエスト中ではないためエラーになります。リクエストスコープのオブジェクトをシングルトンにする場合、最も良い場合でも、Httpリクエストがエラーによって動作しないようになります。
最悪の場合は、シングルトンオブジェクトが最初のリクエストを参照し続けます。こういったときは、代わりにProvider代わりにProvider必要に応じてより小さいスコープからオブジェクトを取得するのに、それを使ってください使ってください。