代码之家  ›  专栏  ›  技术社区  ›  user2490003

为“.properties”文件实现特定于层的结构

  •  1
  • user2490003  · 技术社区  · 6 年前

    我正在尝试为我的属性实现一个特定于层的回退系统。

    我知道像Spring这样的高级框架已经内置了对这一点的支持,但是我使用的是更简单的sparkjava框架。

    src/
      main/
        resources/
          properties/
            dev/
              |- application.properties
              |- ValidationMessages.properties
              |- log4j.properties
            prod/
              |- application.properties
              |- ValidationMessages.properties
              |- log4j.properties
            test/
              |- application.properties
              |- ValidationMessages.properties
              |- log4j.properties
    
            application.properties
            ValidationMessages.properties
            log4j.properties
    

    我希望物业来源如下。假设我有一个系统配置 APP.TIER 这让我在运行时知道当前层是什么( test , dev , prod 等…)

    1. 任何顶级“共享”文件(例如。 properties/application.properties )应适用于所有层
    2. 任何特定于层的属性(例如。 properties/${APP.TIER}/application.properties )应该覆盖公共值

    main() example ). 我还可以控制加载它们的顺序,以便确保手动应用上述回退逻辑。

    ValidationMessages.properties 由休眠或 log4j.properties 由log4j使用)我无法控制如何加载属性。

    有没有一个通用的框架来支持这种类型的财产来源?我知道maven支持概要文件和过滤,但这意味着我必须为每一层构建一个单独的JAR文件,这似乎不是很好的做法。

    0 回复  |  直到 6 年前