доступ к контексту Spring в пакете OSGi - PullRequest
5 голосов
/ 24 сентября 2010

У меня есть пакет OSGi, который использует файл bundle-context.xml для инициализации компонента.

<bean id="myBean" class="test.MyClass">
    <property name="output" value="test"/>
</bean>

У меня есть фабричный класс, который должен получить экземпляр компонента.В мире, отличном от OSGI, у меня всегда есть только следующее для инициализации контекста и получения дескриптора к бину ...

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bundle-context.xml");
MyClass bean = (MyClass) applicationContext.getBean("myBean");

Но в OSGI (FuseESB 4.2, Servicemix4) контейнеравтоматически загружает файл bundle-context.xml и инициализирует контекст Spring.Если я загружаю контекст явно (используя код выше), то создаются 2 контекста (что плохо).Итак, как правильно получить дескриптор для того же контекста / bean-компонента?

1 Ответ

4 голосов
/ 27 сентября 2010

Я полагаю, что именно Spring Dynamic Modules загружают ваш контекст - поэтому вы не должны делать это для себя.Ознакомьтесь с документацией Spring DM - это будет полезно.

Spring DM опубликует контекст приложения в качестве службы OSGi.Посмотрите объяснение здесь и следуйте рекомендациям.

Также см. Мой комментарий ниже.

...