0

我正在尝试以格式创建 Java 属性文件

api.base=http://example.com/api
api.get_posts=<dynamic_value_for_api_base>/get_posts

我不太确定它是否可能,但我之前肯定见过它(尽管它可能是使用 Ant 完成的)。在这种情况下,我可以在属性文件中做些什么,而不必在 Java 中以编程方式进行吗?

谢谢斯蒂芬

4

5 回答 5

0

在 Java 中,您可以拥有自己的属性文件。您也可以在运行时修改它们(这似乎不是您所追求的,但我认为知道它很方便)。您可以查看链接以获取更多信息。

于 2012-07-02T09:55:35.183 回答
0

除了通过代码编辑文件之外,没有真正的方法可以在文件中动态更改它。

我认为最好只放:

api.get_posts=get_posts

以及您将在代码本身中添加的动态部分。

于 2012-07-02T09:56:54.797 回答
0

您会看到的是 ant 或 maven 过滤器。可以使用它在构建时设置变量。

您所说的不会发生在资源加载器中,它们会在没有代码的情况下读取属性文件。

此外,当然,如果您正在编写 java 来读取属性以实现模式匹配以支持这一点。

通常没有人打扰,因为在构建时使用过滤器和 mvn 或 ant 更容易,或者只编写代码不需要冗余配置块,这些配置块将受益于动态内容。

于 2012-07-02T10:01:27.870 回答
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} 等。

于 2012-07-02T10:04:40.103 回答
0

如果您正在寻找一种方法来覆盖属性文件中存在的属性,例如属性名称 = 属性值。

您可以通过在运行时覆盖文件本身来覆盖此属性。

这意味着先前存在的文件被完全覆盖,而这个新文件将取而代之。

因此,以前可能存在的任何属性都不再存在。因此,在执行此操作时需要注意一些事项。看一下这个,看看这是如何实现的 我如何创建一个文件并用 Java 写入它?

于 2018-08-01T10:35:23.937 回答