インターフェイスがあります: InterfaceA。
クラスがあります: ConcreteA。
@AnnotAと@AnnotBという 2 つの注釈もあります。
私は次のバインディングを行いました:
bind(InterfaceA).annotatedWith(AnnotA).to(ConcreteA);
bind(InterfaceA).annotatedWith(AnnotB).to(ConcreteA);
次に、クラス ConcreteA には、 hostNameString
という引数を取るコンストラクターがあります。
class ConcreteA
{
@Inject
public ConcreteA(@Named("hostName") hostName) {
}
... <rest of class>
}
以下を記述するコードが必要です。
ConcretaA が @AnnotA を使用している場合、hostName を 'localhost' の文字列値でバインドします
ConcreteA が @AnnotB を使用している場合、hostName を「externalhost」の文字列値でバインドします
これに対する解決策のアイデアはありますか?