我是在 OSGi 世界中潜水的新手。我正在尝试使用以下模块(捆绑包)开发应用程序:
- 模型
- 服务-api
- 默认服务
- 网络
假设 default-service 包包含内部数据访问服务。因此,它需要对数据库访问进行一些配置。我觉得将数据库配置放在 default-services 包中是不对的。此外,web 包不应该知道默认服务是如何在内部连接的。
我的问题是:OSGi 有配置包的概念吗?我的想法是部署一个负责默认服务配置的包。有没有类似的解决方案?
我是在 OSGi 世界中潜水的新手。我正在尝试使用以下模块(捆绑包)开发应用程序:
假设 default-service 包包含内部数据访问服务。因此,它需要对数据库访问进行一些配置。我觉得将数据库配置放在 default-services 包中是不对的。此外,web 包不应该知道默认服务是如何在内部连接的。
我的问题是:OSGi 有配置包的概念吗?我的想法是部署一个负责默认服务配置的包。有没有类似的解决方案?
您看过 ConfigurationAdmin 服务吗?你的包应该使用 ConfigurationAdmin 来接收他们的配置。如果您在捆绑包中使用声明式服务,DS 将自动为您使用 ConfigurationAdmin。
根据您期望的配置方式,片段可能适合您的需求。它们允许您向现有的捆绑包类路径添加额外信息。我们使用它来为不同的运行时环境(开发、测试……)提供不同的配置。您只需部署适当的片段包即可获得正确的配置。
我实际上开发了一个小包,它可以使用扩展器模式检测其他包中的配置数据。就我而言,这是一个 Jason 文件。获得了一些特殊技巧来处理密码和二进制文件,如 ssl 证书。