我正在做一个java项目,目前通过以下方式加载属性:
properties.load(ConfigProperty.class.getClassLoader().getResourceAsStream("project.properties"));
但有时我也需要从命令行运行并传递值来覆盖project.properties中的值。
我尝试过类似的方法(用户是属性中的键),但实际上不起作用。
gradle gatlingRun -Duser=1
应该怎样做才是正确的呢?
是不是properties.load限制它只能从文件中读取的方式?应该改变这一部分吗?
1条答案
按热度按时间yi0zb3m41#
这样就不能使用
getResourceAsStream
方法,也不能用示例中的系统属性覆盖。目前还不清楚你的整体环境是什么,但像Quarkus这样的系统包括一个configuration subsystem来帮助你做到这一点。你可以使用系统属性,环境变量和文件。
对于较小的命令行类型的应用程序,我使用Apache Commons configuration,它也可以从不同的地方读取。它很简单,有非常大量的源代码。