java - 在 Java 应用程序中处理用户配置的最佳方式是什么?
问题描述
我正在开发一个 Java 应用程序,它需要最终用户以 .properties 文件的形式进行一些配置。目前我正在使用 gradle 'application'-plugin 将我的项目导出为 zip/tar,并将我的配置文件放在存档内的 config 文件夹中,所以我的结构如下所示:
存档.zip
- 垃圾桶/
- 配置/
- 库/
然后我修改 build.gradle 中的 JVM 参数,以将配置文件夹的路径作为参数包含在内:
application {
applicationDefaultJvmArgs = ["-Dconfig=CONFIG_HOME/config/"]
}
startScripts {
doLast {
unixScript.text = unixScript.text.replace('CONFIG_HOME', '\$APP_HOME')
windowsScript.text = windowsScript.text.replace('CONFIG_HOME', '%APP_HOME%')
}
}
这一切都感觉超级hacky,并且'application'-plugin中的'run'选项也不起作用,因为“CONFIG_HOME”部分似乎没有被替换,所以我无法从我的IDE内部启动应用程序.
在您看来,实现这一目标的最佳方法是什么?你有什么建议吗?
谢谢
解决方案
据我所知,对于任何需要从外部加载的属性文件或不断变化的配置文件。这是加载文件的方式。我们必须像您一样创建一个位置。我曾经将它保存在我的 gradle 项目的资源文件夹中。
推荐阅读
- google-apps-script - 如何从插件启动 Gmail 搜索?
- postgresql - Postgis GIST 索引 - 没有性能提升
- arcgis - ArcGIS 错误:无法连接到在主机“Not_Set”上运行的 ArcGIS 许可管理器
- forms - 如何在 react-final-form 中使用多个 onSubmit 函数?
- python-3.x - 使用 python 和 python-smpp 接收短信
- java - 在 Eclipse 中添加 Derby 性质时出错
- amazon-web-services - AWS Route53 到外部 DNS 服务 A 记录
- python - 用单词替换各种格式的数字
- azure - 带有事件中心输出绑定的 Azure 函数不起作用
- python - 如何从网络 windows 目录获取文件并移动到我的 Python Django 项目目录?