私は指定されたタイプの複数のインスタンスを必要とするguiceベースのアプリケーションを持っていますので、名前付き注釈を使用して依存関係を曖昧さを排除します。しかし、このタイプの依存関係は、どちらが得られるかに基づいて変化する必要があります。説明するためにguice:所有者の注入方法によって注入されるタイプを変更する
は私が
@Singleton
public class FooCache {
private final FooCacheListener listener;
@Inject
public FooCache(FooCacheListener listener) {
this.listener = listener;
}
// do stuff
}
を持って言うことができますし、私は
1クラスの@ThatOne FooCache
と
@ThisOne FooCache
を持っているかもしれないので、私は2つの別々のインスタンスを必要としていると言うことができます
を別にしてください。
ここで、それぞれ異なるリスナーが必要な場合を考えてみましょう(多分、データベースに何かを書き、もう1つはJMSまたは分散キャッシュに通知を送ります)。どうすればいい?私はFooCacheListenerに名前を付けることができないことはわかりません。なぜなら、ある状況では別の名前を、もう1つの状況では別の名前が必要だからです。私がこれを行うと考えることができる唯一の方法は、FooCacheをサブクラス化することですが、それは私にとっては本当に不器用なアプローチのようです。
乾杯 マット
何とか私はドキュメントでそれを逃した、それは私が探しているものです。ありがとう。 – Matt