【问题标题】:Automatically convert properties file in Java source在 Java 源代码中自动转换属性文件
【发布时间】:2017-05-11 10:51:41
【问题描述】:

我有一个配置文件config.properties,用于存储我的应用程序所需的所有配置。我还使用了一个由 spring 加载的 Java 类 ApplicationConfig,它本质上将每个属性映射到 Java getter。

config.properties

main.path=C:\\

ApplicationConfig.java

public class ApplicationConfig {
    private static transient Properties config;

    public ApplicationConfig(Properties config) {
        ApplicationConfig.config = config;
    }

    public static String getMainPath() {
        return config.getProperty("main.path");
    }
}

每次更改属性文件时,我都必须重新编写 Java 类。由于这是一个可以通过编程轻松完成的简单转换,有没有办法指示 Eclipse 每次我保存属性文件(或在构建时)时,java 文件都会自动重做?

【问题讨论】:

    标签: java spring eclipse properties eclipse-neon


    【解决方案1】:

    可能 Eclipse 有某种 代码 生成支持,可以让您这样做,但我建议:不要不要让自己依赖于您的 IDE!

    当您决定切换到另一个 IDE 时会发生什么?那么您在这里投入的所有时间都将丢失!

    除此之外:您正在谈论产品的核心元素。 核心不应该是自动构建的吗?通过一些构建工具

    因此:我宁愿研究命令行工具来做到这一点。

    最坏的情况:用你最喜欢的语言编写脚本;甚至在像这样工作的 Java 中:

    • 它会读取您的属性文件的一些模板描述,其中包含property-name: main.pathproperty-type: Stringproperty-getter: getMainPathproperty-default: C:\\bla 等条目
    • 现在工具 生成了所需的源代码,加上 属性文件本身。

    简而言之:您应该平衡“易于实施”与“易于长期维护”。如果您对您的产品“认真”,您迟早会发现任何构建步骤需要手动干预(例如:启动您的 IDE按下按钮)会减慢你的速度;并极大地影响您自动化部署过程的能力。这是 2017 年任何人都不应该轻松愉快的事情。

    当然:为实现此要求而编写的更少自己的专有代码越好。但随后寻找“命令行”解决方案;不需要 IDE 启动并运行来进行处理!

    【讨论】:

      【解决方案2】:

      查看Project Lombok。它可以生成带有简单注释的 getter/setter 等等。它通过插件与 Eclipse(和 IDEA)集成,可与当今使用的大多数构建工具一起使用。

      【讨论】:

        猜你喜欢
        • 2016-03-27
        • 2019-10-28
        • 2011-01-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-15
        • 1970-01-01
        相关资源
        最近更新 更多