【发布时间】:2017-12-04 08:15:41
【问题描述】:
我想了解您对管理跨项目共享的属性文件的最佳方式的看法。
假设我们有四个应用程序——Application1、Application2、Application3 和 Application4——所有的应用程序都部署在同一个盒子上
考虑我们有以下属性文件
- File1.property -- 用于 Application1 , Application2 应用程序 3 和应用程序 4
- File2.property -- 用于 Application1 , Application2
- File3.property -- 在 Application2 Application3 中使用
- File4.property -- 用于 Application1 , Application4
- File5.property -- 用于 Application3
- File6.property -- 在 Application4 中使用
属性文件的数量将来可能会增加。
目前我正在考虑以下方法
方法 1 – 将所有必需的属性文件捆绑在单独的 jar 中。 缺点 - 1:属性文件在多个项目中重复 2 : 需要更多的努力来确保所有项目中的所有属性文件都同步。
方法2:在单独的项目中创建所有属性文件的单独捆绑包,将此项目部署为配置项目。
将一些环境变量指向该位置,并在 java 代码中从该位置加载属性文件。
这是个好主意吗?
【问题讨论】:
-
您需要真正共享属性文件还是只需要适当的类可以提供的一种配置?
-
属性文件包含有关环境、配置、路径等的信息。所有项目需要相同/一致
-
这可以由单个 jar 文件中的类实现,该文件提供了一个适当的接口来加载属性文件...您可以简单地在不同模块之间共享配置信息...
-
加载属性文件不是问题,所有都是 spring 基础应用程序,所以使用单行 @PropertySource 我正在加载我的所有属性。我关心我应该如何捆绑我的通用专有文件
标签: spring maven deployment properties production-environment