java-如何制作库我使用的configvalues

问题描述 投票:0回答:2

长的故事简短,我正在制作一个需要几个“配置值”的Java库。当前,我只是在根目录中使用config.properties文件并从中读取,但是我看不到如何与可分发的jar文件一起使用。

我已经考虑过将这些配置值参数与库中类的构造函数进行制作,但是值太多了 - 似乎不是正确的方法。 comenty,我只需要某种方法,即我的库的用户只能使用JAR文件,而且还可以更改几个影响库功能的配置值。

如果有任何不同,我正在使用Maven来构建我的项目。

提前感谢

(假设您只是在Javase工作,因为Java EE具有其他配置机制。)

模式是在您的jar中创建一个单顿类,该类别为其他类提供配置。 从JAR中的属性文件中读取默认值。 允许JAR的呼叫者通过将其设置为系统属性来覆盖属性。

在属性类的Java文档中,有一个构造函数可以提供默认和覆盖并获取“ Net”属性。
java maven configuration config
2个回答
1
投票

我将您的问题分为两个部分,然后分别回答每个部分。

我已经考虑过将这些配置值参数与库中类的构造函数进行制作,但是值太多了 - 似乎不是正确的方法。

对于我上面引用的问题的一部分,请参阅以下stackoverflow问题的接受答案(由我写):

如何处理概念上的程序上的大量配置参数?

comenty,我只需要某种方法,即我的库的用户只能使用JAR文件,而且还可以更改几个影响库功能的配置值。

听起来您的配置文件将包含

N

变量,并且用户可能需要自定义这些变量中的2或3个值。如果
n

相对较小,则可以使用

0
投票
方法进行配置:

用户提供了一个配置文件,其中包含所有
N

变量的值(该文件的位置可以通过系统属性,环境变量或库的构造函数来指定该文件的位置) ;

or

您的库使用了一组默认配置值的“内置”集,我建议您将其放在属性文件中,该文件将您捆绑到库的JAR文件中,然后通过调用
java.util.logging

.

如何,如果n很大,那么您可能希望库为配置变量提供语义:

  • 您的库使用一组默认配置值的“内置”集,我建议您将其放置在属性文件中,将其捆绑到库的jar文件中,然后通过调用

    ClassLoader.getSystemResourceAsStream()来访问。这为所有N变量提供了默认值。

  • 和您的库加载一个(可选的)用户指定的配置文件,该文件可能包含0和

    N变量之间的任何位置。用户指定的配置变量的值用于覆盖内置默认值。

    明显地,您需要在库中实现

    逻辑,但这实际上只是一个SMOP(简单的编程问题)。也许最简单的方法是迭代用户提供的
  • ClassLoader.getSystemResourceAsStream()
对象中的条目,然后将它们复制到包含默认值的

Properties对象中。这样,用户指定的值将覆盖默认值。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.