을 제공하는 인터페이스를 기반으로 iPojo 공장을 얻으려면 인터페이스를 기반으로 주입하는 것. 동일한 인터페이스에 대해 두 가지 의미가 있다면 어떤 알고리즘 (서비스 순위?)을 기반으로 선택합니다.방법은
이제 이벤트를 기반으로 필요에 따라 작성해야하는 서비스의 다중 수준이 필요한 경우, org.apache.felix.ipojo.Factory를 사용하고 그것을 통해 인스턴스를 구성해야합니다. 내가 가진 문제는 내가
@Bind
public void bindService(org.apache.felix.ipojo.Factory myFactory) {
}
이 모호 즉 공장
의 인스턴스 만 인터페이스를 사용하여 주입 한있는 공장 지정하는 방법을 발견하지 않은 것입니다. 필자가 공장에 주입 할 수있는 유일한 방법은 @Bind(filter="(factory.name=myServiceFactoryImpl)"
을 사용하는 것이지만 이것은 소비자를 구체적인 공급자와 연결시켜 주므로 OSGi 서비스의 모든 부분을 무력화시킵니다. 내가 원하는 것은 영어로 "MyService 인터페이스를 구현하는 팩토리에 나를 바인딩"입니다. 같은 인터페이스의 프로 바이더의 팩토리가 많은 경우는, 인스턴스를 직접 인젝션하는 경우와 같은 명확성의기구를 사용할 필요가 있습니다. 이것이 가능한가?
안녕 클레멘트, 나는 또한 당신의 의견을 기다리고있었습니다. 고맙습니다! 나는 그것이 이런 식으로되기를 바랐다. 분명히'provide.specification ='시도가있었습니다. 그것이 내가 사용할 권리가 있다는 것을 어떻게 알 수 있습니까? 그 (것)들을 목록으로 만드는 방법 있는가? 내가 시도한 것은 * factory * 명령어 출력에서 나온 것입니다. – Hilikus
"Factory"서비스를 노출함으로써 노출 된 서비스 속성을 얻을 수 있습니다. 핸들러는 프로퍼티를 추가 할 수 있으며, 불변 프로퍼티는 Factory 서비스에도 노출되어 있습니다. – Clement