2010-11-10 40 views
4

我有一個支持Spring的OSGi包。我希望這個包可以導出一個工廠類型的OSGi服務,客戶端軟件可以使用這個服務來創建這個包中定義的應用程序上下文的多個實例。在OSGi包中克隆Spring應用程序上下文

默認情況下,Spring DM庫捆綁包將自動掃描並從「META_INF/spring」下找到的任何Spring XML配置中創建應用程序上下文的實例。爲了避免這種情況,我將Spring XML配置文件移動到了不同的文件夾下,然後嘗試按需要從工廠類以編程方式創建應用程序上下文。不幸的是,我遇到了Spring模式文件在bundle classpath中不可用的問題。我真的不想在我的包中嵌入必需的Spring Jar來訪問這些模式。

是否有一種更簡單的方法克隆OSGi環境下的Spring應用程序上下文?

+0

這個「工廠型OSGi服務」是如何使用的?它是否像myOsgiService.newInstance(),或配置文件中的服務實例,讓客戶端引用它們? – yihtserns 2012-05-06 10:02:30

回答

1

我不明白你的問題的細節,但如果你只是想從不同於META-INF/spring的位置加載應用程序上下文,你可以使用'Spring-Context'在MANIFEST.MF文件中定義它,例如用於根文件夾中的文件

Spring-Context: /application-context-core.xml,/application-context-osgi.xml 

有關詳細信息,請參閱documentation

+0

問題是我需要創建同一應用程序上下文的多個實例。如果我有Spring DM創建應用程序上下文,那隻會有一個實例。 – 2010-11-15 17:40:47