在生产环境

时间:2017-06-30 11:21:10

标签: spring maven deployment properties production-environment

我想了解一下管理项目间共享的属性文件的最佳方法。

考虑我们有四个应用程序--Application1,Application2 Application3和Application4 - 所有应用程序都部署在同一个框

考虑我们有以下属性文件

  1. File1.property - 在Application1,Application2中使用 Application3和Application4
  2. File2.property - 在Application1,Application2
  3. 中使用
  4. File3.property - 在Application2 Application3中使用
  5. File4.property - 在Application1,Application4
  6. 中使用
  7. File5.property - 在Application3中使用
  8. File6.property - 在Application4中使用
  9. 以后可能会增加属性文件的数量。

    目前我正在考虑以下方法

    方法1 - 将所有必需的属性文件捆绑在单个jar中。 缺点 - 1:属性文件在多个项目中重复       2:需要做出更多努力以确保所有项目中的所有属性文件都是同步的。

    方法2:在单独的项目中创建单独的所有属性文件包,将此项目部署为配置项目。
    将一些环境变量指向此位置,并在java代码中从此位置加载属性文件。

    这是好主意吗?

1 个答案:

答案 0 :(得分:0)

您的问题中不明确的一件事是,您提议部署的字段是否包含实际的生产属性,或者它们是否只是部署应用程序时某些/某些内容将要更新的模板。

或者换句话说,无论您是在软件开发,测试和生产之间进行清晰的概念分离。假设你这样做,那么你很可能会发现:

  • 每个“部署”都需要自己的一组属性
  • 生产部署很可能需要版本控制与应用程序的版本控制不同
  • 生产配置的生命周期很可能需要与应用程序生命周期不同。

或者至少,这就是大型组织通常如何处理大型组织,其中“开发”和“操作”是不同的职责。 (在开发世界中,即使“dev”和“ops”任务由同一个人执行,分离应用程序和配置的生命周期也是有价值的。)

以下是一些更多的想法:

  • 如果要将应用程序部署在最终用户计算机上,建议将这些属性集成到某种偏​​好管理框架中。
  • 在某些情况下,最好使用“.ini”文件而不是类(或XML)Java属性文件。