2つの異なるサービスが実装しているインターフェースを作成しました。
インターフェイスの名前がCheckReferenceであり、CheckReferenceImpl1とCheckReferencImpl2の2つの異なるクラスがそれを実装していると考えてください。
@Component
@Service(value = CheckReference.class)
@Property(name = "domain", value = "ref1")
public class CheckReferenceImpl1 implements CheckReference
そしてもう一つ、
@Component
@Service(value = CheckReference.class)
@Property(name = "domain", value = "ref2")
public class CheckReferenceImpl2 implements CheckReference
次に、@ Referenceアノテーションを動的に使用して、必要に応じて実装を動的にロードします。だから、チェック状態で
public class LoadReference {
@Reference
CheckReference checkReference
if(check) {
// load checkReferencImpl1
} else {
// load checkReferenceImpl2
}
}
また、targetプロパティを使用して特定の実装をロードできることも知っています。しかし、それは静的な方法です。しかし、これを動的に行うには、仕様やチュートリアルから関連付けることができませんが、これをどのように行う必要がありますか?