gpt4 book ai didi

java - 如何使用 OSGi 托管服务和配置管理来存储配置对象?

转载 作者:行者123 更新时间:2023-12-01 11:41:32 24 4
gpt4 key购买 nike

我正在尝试使用 Apache Felix 的 org.osgi.service.cm.ManagedService 和配置管理。

据我了解,ConfigurationAdmin 通过方法将新配置推送到服务

public void updated(Dictionary<String, ?> dctnr) throws ConfigurationException

但是我有几个问题:

  1. 该方法签名似乎表明我可以在配置中保留任何配置项,给定 Dictionary<String, ?> 。是这种情况吗,还是只能将字符串值用作配置值?我还没有找到使用除字符串之外的任何内容的示例。

  2. 鉴于您可以将对象保留为配置值,我必须遵循哪些约定才能让配置管理员真正保留它们?它们必须是 Java Bean、可序列化或启用 JaxB 或者完全是其他东西吗?

  3. 我能否以某种方式从配置管理中获取一些信息,描述为特定键返回的对象的类型?假设我将 Date 放入一个键中,将 String 放入另一个键中,应用程序是否只需保留这些知识,或者我可以以某种方式从 ManagedService 获取信息吗?

最佳答案

配置对象在配置管理规范(请参阅 OSGi Compendium Release 5 Specification )中定义为属性字典。属性值被称为核心规范中定义的主要属性类型。

这是 OSGi Core Release 5 Specification 中主要属性类型的定义:

type ::= scalar | collection | array
scalar ::= String | Integer | Long | Float | Double | Byte | Short | Character | Boolean
primitive ::= int | long | float | double | byte | short | char | boolean
array ::= <Array of primitive> | <Array of scalar>
collection ::= <Collection of scalar>

关于java - 如何使用 OSGi 托管服务和配置管理来存储配置对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29488154/

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