我尝试以
格式创建Java属性文件api.base=http://example.com/api
api.get_posts=<dynamic_value_for_api_base>/get_posts
我不太确定它是否可行,但我之前确实已经看过它(虽然它可能是使用Ant完成的)。在这个实例中,在属性文件中是否可以执行某些操作,而无需在Java中以编程方式执行此操作?
由于 斯蒂芬
答案 0 :(得分:0)
在Java中,您可以拥有自己的属性文件。你也可以在运行时修改它们(这似乎不是你想要的,但我认为它很方便)。您可以查看this链接以获取更多信息。
答案 1 :(得分:0)
除了通过代码编辑文件外,没有真正的方法在文件中动态更改它。
我认为最好放一下:
api.get_posts=get_posts
以及您在代码中添加的动态部分。
答案 2 :(得分:0)
你会看到的是蚂蚁或maven过滤器。 可以使用此方法在构建时设置变量。
在资源加载器中没有出现你正在谈论的内容,这些资源加载器会在没有代码的情况下读取带有文件的文件。
此外,如果您正在编写java以读取属性以实现模式匹配以支持此功能。
通常没有人会烦恼,因为在构建时使用过滤器和mvn或ant更容易,或者只是编写代码而不需要可以从动态内容中受益的冗余配置块。
答案 3 :(得分:0)
Struts中有一些方法可以做到这一点。我相信它在ActionMessage类中。我们编写了自己的文件,它可以很容易地连接到属性文件对象:
public static String addCustomText(String message, List values) {
if (CollectionUtils.isEmpty(values)) {
return message;
}
String temp = message;
for (int i = 0; i < values.size(); i++) {
temp = StringUtils.replace(temp, "{" + i + "}", StringUtils.trimToEmpty((String) values.get(i)));
}
return temp;
}
所以你可以编写一个属性文件访问器,然后使用这个方法来交换{0}等。
答案 4 :(得分:0)
如果您正在寻找一种替代属性文件中存在的属性的方法,例如属性名=属性值。
您可以通过在运行时覆盖文件本身来覆盖此属性。
这意味着先前存在的文件将被完全覆盖,而这个新文件将取代它。
因此,以前可能存在的任何属性都不再存在。 因此,在执行此操作时需要格外小心。 看看这是如何实现的How do I create a file and write to it in Java?