gpt4 book ai didi

java - OSGi:如果不取消服务会发生什么

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:50:48 27 4
gpt4 key购买 nike

这是我获取 OSGi 服务的方式:

ServiceReference reference = bundleContext.getServiceReference(Foo.class.getName());
Foo foo=(Foo) bundleContext.getService(reference);

如果我在完成服务时不执行 bunldeContext.ungetSerivice(reference) 会发生什么:

  1. 如果我手动注册服务,例如在激活器中
  2. 如果我使用声明式服务并且它是单例

最佳答案

OSGi 框架为您的包维护每个服务的使用计数。如果您的 bundle 没有取消获取服务,则当您的 bundle 停止或服务未注册时,框架将自动释放它。

如果您使用声明式服务,SCR 将在引用该服务的组件的生命周期中的适当时间处理调用 unget。

关于java - OSGi:如果不取消服务会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43154532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com