Java属性 - 如何创建动态属性

时间:2012-07-02 09:52:23

标签: java dynamic properties

我尝试以

格式创建Java属性文件
api.base=http://example.com/api
api.get_posts=<dynamic_value_for_api_base>/get_posts

我不太确定它是否可行,但我之前确实已经看过它(虽然它可能是使用Ant完成的)。在这个实例中,在属性文件中是否可以执行某些操作,而无需在Java中以编程方式执行此操作?

由于 斯蒂芬

5 个答案:

答案 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?