Вопрос

Я использую 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 пар ключ / значение).

Я сомневаюсь в производительности, поскольку мы могли бы использовать аналогичный подход на страницах с высокой загрузкой, а подход "поиск по требованию" может оказаться дорогостоящим.

Это было полезно?

Решение

В соответствии с Javadocs - Файлы Javadocs:

Экземпляры пакета ресурсов, созданные getBundle заводские методы кэшируются по умолчанию, и заводские методы возвращают один и тот же экземпляр пакета ресурсов несколько раз, если он был кэширован.

Таким образом, вам не нужно выполнять кэширование самостоятельно.Но если вам нужен более детальный контроль поведения кэширования, вы можете использовать getBundle(String, ResourceBundle.Control) перегрузить и передать настроенный Control внутри.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top