フィールドを現在のスコープで使用できる場合にのみ注入する必要があります。たとえば、次のようにオプションGuiceのスコープ付き注入
public class Thinger implements Provider<SomeSuch> {
public @Inject(optional=true) HttpServletRequest request;
public SomeSuch get() {
return request == null ? new WhosIt() : WhatsIt();
}
}
しかし、HttpServletRequestのがバインド(それはある)が、しない範囲で、私はProvisioningExceptionを取得している場合。私はこれを行うためのエレガントな方法を見つけることができたので、私は何かのようにするために降格されました。
HttpServletRequest request = null;
try {
request = injector.getInstance(HttpServletRequest.class);
} catch(ProvisioningException e) {}
ちょうどすべてのやり方が間違っていると感じます。これを行う適切な方法はありますか?
私たちが1つのスコープの「内側」にいるかどうかを確認するにはどうすればよいですか? – BrunoJCM