Spring OSGI中的Bundle Deactivation

时间:2013-03-11 11:35:44

标签: spring spring-mvc osgi osgi-bundle

在spring动态模块中,当服务提供程序包被停用时,依赖包会发生什么。他们也会被停用吗?

1 个答案:

答案 0 :(得分:1)

服务提供者和使用者之间不应该存在直接依赖关系,因为服务接口应该声明为实现者的外部。

当一个服务被停用时,Spring注入服务的用户(它是一个代理)将只是尝试访问该服务,如果代理在超时期限内找不到合适的服务实现,最终会失败(我相信它是默认的)到5分钟)。这与OSGi的动态特性是一致的,其中服务引用意味着能够在运行时添加和删除。在这样的动态环境中的应用程序必须意识到这一点,并进行适当的编码,以处理服务可能并不总是可用的事实。