假设我有一个 OSGi 服务 A,使用 DS 和元类型配置进行声明。
然后让我们调用 B 另一个服务,该服务正在基于属性过滤器跟踪任何不属于 A 配置的对象。
在 A 中是否有可能访问服务属性并在运行时更新它们,以便 B 注意到更改?
请注意,B 跟踪的属性不是配置属性,而是 A 可以从其自己的配置中推断出的属性,因此理想情况下,A 在解析配置后会在其 @Activate 方法中更新其服务属性。
最佳答案
如果您不关心配置语法与属性的直接耦合,那么有一个更简单的解决方案。
只需在组件 A 的配置中设置服务属性即可。它将直接反射(reflect)为服务属性,然后 B 可以对其进行过滤。
关于java - OSGi DS 服务配置和 ServiceTracker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171054/