【问题标题】:Cloning Spring Application Context in OSGi bundle在 OSGi 包中克隆 Spring 应用程序上下文
【发布时间】:2011-05-07 20:47:51
【问题描述】:

我有一个支持 Spring 的 OSGi 包。我希望这个包导出一个工厂类型的 OSGi 服务,客户端软件可以使用它来创建这个包中定义的应用程序上下文的多个实例。

默认情况下,Spring DM 库包会自动扫描并根据“META_INF/spring”下的任何 Spring XML 配置创建应用程序上下文的实例。为了避免这种情况,我将 Spring XML 配置文件移到了不同​​的文件夹下,然后尝试根据工厂类的需要以编程方式创建应用程序上下文。不幸的是,我遇到了捆绑类路径上不可用的 Spring 模式文件的问题。我真的不想在我的包中嵌入所需的 Spring jar 来访问这些模式。

有没有更简单的方法可以在 OSGi 环境下克隆 Spring 应用程序上下文?

【问题讨论】:

  • 这个“工厂型OSGi服务”是如何使用的?是像 myOsgiService.newInstance() 一样,还是在配置文件中配置服务实例,让客户端引用?

标签: spring osgi


【解决方案1】:

我不详细了解您的问题,但如果您只想从 META-INF/spring 以外的其他位置加载应用程序上下文,您可以使用“Spring-Context”在 MANIFEST.MF 文件中定义它,例如对于根文件夹中的文件

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

有关详细信息,请参阅documentation

【讨论】:

  • 问题是我需要创建同一个应用程序上下文的多个实例。如果我让 Spring DM 创建应用程序上下文,那么只会有一个实例。
猜你喜欢
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-24
相关资源
最近更新 更多