gpt4 book ai didi

java - Apache Felix SCR @Reference 速查表

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:51 25 4
gpt4 key购买 nike

我在我的应用程序中使用 Apache Felix 声明式服务,我正在寻找一份备忘单,其中描述了可以为 @Reference 注释提供的参数。我曾经看到一个网页,其中包含关于它的非常有用的备忘单(或表格),但我似乎找不到它。我认为这对很多 Felix 用户都有用。我说的参数:

  • 基数:MANDATORY_UNARY、MANDATORY_MULTIPLE、OPTIONAL_UNARY、OPTIONAL_MULTIPLE
  • 策略:EVENT,LOOKUP
  • 策略:动态、静态
  • policyOption:贪婪,不情愿

cardinality 相当简单,但其他的我不清楚。他们做什么以及如何工作?

最佳答案

来自官方OSGI R5 Compendium Spec第 281 页。

引用基数

引用的基数可以指定为四个选项之一:

  • 0..1 – 可选和一元。
  • 1..1 – 强制和一元(默认)。
  • 0..n – 可选和多个。
  • 1..n – 强制和多个。

策略

  • 事件策略 – 当服务绑定(bind)时,SCR 调用组件实例上的方法,当服务未绑定(bind)时,或者更新其属性时。这些方法是引用指定的绑定(bind)、更新和取消绑定(bind)方法。如果需要通知组件动态引用的绑定(bind)服务发生变化。
  • 查找策略 – 组件实例可以使用 ComponentContext 的 locateService 方法之一定位绑定(bind)服务。这些方法将引用的名称作为参数。如果引用有动态策略,重要的是不要存储返回的服务对象,但每次需要时都要查找。

政策

  • 静态策略是最简单的策略,也是默认策略。组件实例永远看不到任何动态。在具有静态策略的引用的任何绑定(bind)服务变得不可用之前,组件配置将被停用。如果目标服务可用于替换变得不可用的绑定(bind)服务,则必须重新激活组件配置并将其绑定(bind)到替换服务。

  • 动态策略稍微复杂一些,因为组件实现必须正确处理绑定(bind)服务集中可能发生在任何线程上的更改。使用动态策略,SCR 可以更改绑定(bind)服务集而无需停用组件配置。如果组件使用事件策略访问服务,则组件实例将通过调用绑定(bind)和解除绑定(bind)方法来通知绑定(bind)服务集的更改。

政策选择

  • reluctant – 尽量减少重新绑定(bind)和重新激活。
  • greedy – 通过停用静态引用或重新绑定(bind)动态引用来最大限度地利用最佳服务。

其他 felix 特定资源

[Felic SCR 注释]( http://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html )

关于java - Apache Felix SCR @Reference 速查表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30443306/

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