0

次の形式で Java プロパティ ファイルを作成しようとしています。

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

それが可能かどうかはよくわかりませんが、以前にそれが行われたことは確かに見たことがあります(ただし、Antを使用して行われた可能性があります)。Java でプログラムを使用せずに、プロパティ ファイルでこのインスタンスでできることはありますか?

ありがとうスティーブン

4

5 に答える 5

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 では、独自のプロパティ ファイルを持つことができます。実行時にそれらを変更することもできます(これはあなたが求めているものではないようですが、知っておくと便利だと思います)。詳細については、このリンクを参照してください。

于 2012-07-02T09:55:35.183 に答える
0

表示されるのは、ant または maven フィルターです。これを使用して、ビルド時に変数を設定することができます。

あなたが話していることは、コードを配置せずに適切なファイルを読み取るリソースローダーでは発生しません。

もちろん、これをサポートするためにパターン マッチングを実装するためにプロパティを読み取る Java を記述している場合も同様です。

フィルタと mvn または ant を使用してビルド時に行うか、動的コンテンツの恩恵を受ける冗長構成ブロックを必要としないようにコードを記述する方が簡単であるため、通常は誰も気にしません。

于 2012-07-02T10:01:27.870 に答える
0

コードを介してファイルを編集する以外に、ファイル内でこれを動的に変更する実際の方法はありません。

私はちょうど置く方が良いと思います:

api.get_posts=get_posts

コード自体に追加する動的部分。

于 2012-07-02T09:56:54.797 に答える
0

プロパティ名=プロパティ値のようなプロパティファイル内に存在するプロパティをオーバーライドする方法を探している場合。

実行時にファイル自体を上書きすることで、このプロパティを上書きできます。

これは、既存のファイルが完全に上書きされ、この新しいファイルが代わりになることを意味します。

そのため、以前に存在していた可能性のあるプロパティは、もう存在しません。したがって、これを行う際には注意が必要です。Java でファイルを作成して書き込むにはどうすればよいですか?

于 2018-08-01T10:35:23.937 に答える