我有一个配置文件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 文件都会自动重新处理?
最佳答案
可能 Eclipse 有某种代码生成支持,可以让您做到这一点,但我建议:不要不要让自己依赖于 IDE!
当您决定切换到另一个 IDE 时会发生什么?那么你在这里投入的所有时间都将付诸东流!
除此之外:您正在谈论产品的核心元素。难道这个核心不应该自动构建吗?通过某些构建工具?
因此:我宁愿研究命令行工具来做到这一点。
最坏的情况:用你最喜欢的语言编写脚本;甚至在 Java 中也可以这样工作:
- 它会读取属性文件的一些模板描述,其中包含以下条目:
property-name: main.path
、property-type: String
、property-getter: getMainPath
、property-default: C:\\bla
- 现在工具生成了所需的源代码,加上属性文件本身。
简而言之:您应该平衡“易于实现”与“易于长期维护”。如果您对您的产品“认真”,您迟早会发现(更确切地说:更快)任何需要手动干预的构建步骤(例如:启动 IDE 来按下按钮)都会减慢您的速度;并极大地影响您自动化部署过程的能力。 2017 年,任何人都不应该轻松地追求这一点。
当然:为实现此要求而编写的自己的专有代码越少越好。但随后寻找“命令行”解决方案;不需要 IDE 启动并运行才能进行处理!
关于java - 自动转换Java源中的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43913329/