java重写了一个。属性中包含的属性文件。jar库
我正在努力找到一个不依赖于Spring或任何类似工具的答案
我维护了一个Java库,它提供了一个远离服务器的抽象,这个库是使用maven构建的。为了定义连接细节(目前是硬编码的),我想引入一个。属性文件,以便于自定义,但我希望在中提供合理的默认值。jar本身,但允许用户在必要时重写特定属性
我目前的maven结构是这样的
src/java/com/site/package/cfg/MyLibraryConfig.java
src/resources/com/site/package/cfg/MyLibraryConfig.properties
我目前正在MyLibraryConfig类中使用getResourceAsStream("MyLibraryConfig.properties")
加载属性文件,这很好
有没有办法允许人们使用我的。jar将文件(例如MyLibraryConfigOverride.properties)放在我的外部。然后拿起并使用哪个罐子?我只希望它们覆盖它们想要覆盖的特定属性,而不是整个文件。例如,更改服务器主机名但使用所有标准端口是很正常的
谢谢你的帮助
# 1 楼答案
我想我不会试图覆盖一个文件,而是对我的默认设置进行硬编码,并提供通过可选文件覆盖这些默认设置的可能性,如:
当然,如果你愿意的话,你也可以把默认设置放在一个文件中。在这种情况下,只需使用不同的名称。像这样:
这增加了额外的复杂性,你必须决定这是否会为你买单