필자는이 시나리오를 사용하여 동일한 인터페이스를 제공하는 선언적 서비스가 3 가지 (예 : 판독기 인터페이스와 readerimpl1-database-readimpl2-flat-file-readimpl3- 메모리가 있음)했습니다. 나는 데이터베이스 구현에만 바인딩하는 소비자를 원한다. 구성 요소 정의에서 이름을 지정하므로 이름이 레지스트리에 있음을 확신 할 수 있으므로 활성화 메서드를 추가하면 이름을 사용하여 구성 요소 컨텍스트에서 조회 할 수 있습니다.Osgi 선언적 서비스 조건부 바인딩
서비스 이름을 매개 변수로 사용하지만 bind/unbind를 통해 문제를 해결하려고합니다. 나는 꽤 그 구성 요소를 참조하는 요소의 "대상"매개 변수는이 작업을 수행하는 데 사용할 수 있지만 그것을 사용하는 방법을 찾지 못했습니다.
다른 사람이이 작업을 수행 한 사람이 있습니까?
이
이는 당신의 서비스를 값
file
또는database
으로backend
라는 이름의 속성이 경우에 따라서, 다음과 같은 목표와 결합 할 수있다 정말 흥미로운 질문입니다. 그것은 당신이 데이터베이스 impl을 선호하지만 다른 것을 받아 들일 것인지에 대한 관련된 질문을 생각하게 만듭니다. 이 시나리오에서는 @Reference (cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, policy = ReferencePolicy.DYNAMIC)를 통해 구현 한 다음 추가/제거 메소드에서 목록을 살펴볼 수 있습니다. –