如何从捆绑包片段中为Spring提供OSGi资源?

时间:2012-07-27 15:49:24

标签: spring configuration osgi fragment

我面临以下问题:我正在使用Spring开发OSGi包,我想允许使用我的包的开发人员通过片段添加Spring上下文文件。

这些文件将用于配置我的Spring bean(没有Spring的类似现有示例: org.apache.log4j 的片段中的配置文件)。

我必须使用Spring框架有几个原因超出了这个问题的范围,但我不能使用以下指令

<import resource="..."/>

因为我甚至不确定某些片段在运行时是否可用(它是可选配置),并且我知道如果无法找到资源,Spring会抱怨。理想情况下,我想有这样的事情:

<import resource="my_default_configuration.xml"/>
<import resource="my_extended_configuration.xml"
        doesNotComplainIfAbsent="true"
        override="true"/>

你有任何想法可以帮助我吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为正确使用OSGi将是一种更好的方法。 Spring DM(AKA Gemini Blueprint)允许您通过OSGi导入和导出Spring bean。因此,您的捆绑包可能会尝试导入与特定接口匹配的所有bean,使用捆绑包的开发人员将从他们自己的捆绑包中导出。它仍然是可选的,因为如果开发人员选择不提供任何内容,你最终会在你的包中找到一个空列表。