質問

ResourceBundle と Locale を使用してプロパティ値を検索しています。非常に簡単に言うと、コードは次のようになります。

  public static String getPropertyValue(Locale locale, String resourceName, String key) {
    ResourceBundle resource = ResourceBundle.getBundle(resourceName, locale);
    return resource.getString(key);
  }

私の質問はパフォーマンスについてです。キャッシュのアプローチは、クラスパス上のプロパティ ファイルにアクセスするよりも迅速で、より良い実装でしょうか?私の理解では、ResourceBundle のパフォーマンスは一般的に非常に優れています。

プロパティ ファイル (この場合) は 30 行未満です (つまり、キーと値のペアが約 30 個)。

高負荷のページでも同様のアプローチを使用できますが、ルックアップオンデマンドのアプローチはコストがかかる可能性があるため、パフォーマンスに疑問があります。

役に立ちましたか?

解決

による Javadoc:

によって作成されたリソース バンドル インスタンス getBundle ファクトリ メソッドはデフォルトでキャッシュされ、キャッシュされている場合、ファクトリ メソッドは同じリソース バンドル インスタンスを複数回返します。

したがって、自分でキャッシュを行う必要はありません。ただし、キャッシュ動作をより細かく制御する必要がある場合は、 getBundle(String, ResourceBundle.Control) オーバーロードしてカスタマイズされたものを渡します Control で。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top