当前位置: 首页 > 知识库问答 >
问题:

如何外部化包的配置?

佟翰林
2023-03-14

我正在开发一个由几个包组成的OSGi程序,我有时在本地windows dev计算机上运行,有时在经典的Linux上运行。目前,几个专用于资源连接的bundle都有自己的配置文件(属性文件),其中包含一些信息,比如访问一些重要文件的路径(在两个环境中都有)。

但是,由于两个执行环境中的路径不同,我必须在编译之前手动更改配置,这取决于我要在哪个环境中运行我的程序。

共有1个答案

鄢英哲
2023-03-14

看看OSGi的ConfigurationAdmin[1],[2]-这完全符合您的需求(也是OSGi优雅的另一个例子)。

基本上,您将实现ManagedService或ManagedServiceFactory,其余部分由ConfigurationAdmin服务负责。

与文件安装配合使用的Felix实现的默认设置(请参见Angelo的注释)将扫描配置文件目录(filename是服务ID和文件后缀。cfg)。但是ConfigurationAdmin是可插入的,所以配置的后端可以是数据库等。

以这种方式将配置外部化的好处在于,您可以将其保存在应用程序/环境中--这样您的包就可以不知道它们的环境了。

 类似资料:
  • 我想外部化的选项,有一个可重用的类或注释,我可以扔在排除任何数据库/Hibernate初始化。 因此,与其写: 我想创建一个注释,我可以应用到我的主类: 然后通过注释启用此功能: 问题:注释方法不起作用,Spring仍然尝试加载数据库。为什么啊? 我的最终目标是拥有多个配置文件,其中只有一个加载数据库。

  • 在springboot应用程序中,我有一个jar,然后是一个子目录config with application。属性,applicationContext。xml和log4j。。。属性文件。 我正在尝试外部化log4j配置。application.properties是这样外部化的。 但是,当springboot运行时,它使用jar文件中的log4j配置文件。通过使用-Dlog4j.debug选

  • 本文向大家介绍Spring Boot打jar包后配置文件的外部优化配置方法,包括了Spring Boot打jar包后配置文件的外部优化配置方法的使用技巧和注意事项,需要的朋友参考一下 在未进行任何处理的情况下,Spring Boot会默认使用项目中的 application.properties 或者 application.yml 来读取项目所需配置。   我这里只记录几种自己所用到的。 访问命

  • 我在两个问题上需要你的帮助: 我怎样才能使这两个特性得到满足呢? 感谢您的帮助:)

  • 我正在尝试将一些遗留的(基于Struts2)web应用程序从Jboss迁移到Open-Liberty服务器,我想知道是否有一种方法可以从web.xml外部化上下文参数(或过滤器init-params)的值,就像在server.xml中使用${}语法或使用eclipse Microprofile的mpConfig特性一样。在最初的项目中,param值是在构建时使用占位符替换注入web.xml中的,但