【发布时间】:2013-02-26 13:39:09
【问题描述】:
在 spring 动态模块中,当服务提供者捆绑包被停用时,依赖捆绑包会发生什么。它们也会被停用吗?
【问题讨论】:
标签: spring spring-mvc osgi osgi-bundle
在 spring 动态模块中,当服务提供者捆绑包被停用时,依赖捆绑包会发生什么。它们也会被停用吗?
【问题讨论】:
标签: spring spring-mvc osgi osgi-bundle
服务提供者和消费者之间不应该有直接的依赖关系,因为服务接口应该在实现者外部声明。
当服务被停用时,Spring 注入服务的消费者(它是一个代理)将简单地尝试访问该服务,如果代理在超时期限内找不到合适的服务实现,最终会失败(我相信它是默认的)至 5 分钟)。这将与 OSGi 的动态特性相一致,其中服务引用意味着能够在运行时添加和删除。在这种动态环境中的应用程序必须意识到这一点并进行适当的编码以处理服务可能并不总是可用的事实。
【讨论】: