在Java源代码中自动转换属性文件

时间:2017-05-11 10:51:42

标签: java spring eclipse properties eclipse-neon

我使用了一个配置文件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文件会自动重新编写?

2 个答案:

答案 0 :(得分:0)

可能eclipse有一些代码生成支持,允许你这样做,但我建议:让自己依赖你的IDE!

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

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

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

最坏的情况:用您喜欢的语言写一个脚本;甚至在Java中也是如此:

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

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

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

答案 1 :(得分:0)

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