Подтвердить что ты не робот

Производительность Java ResourceBundle

Я использую свойства ресурса 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).

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

4b9b3361

Ответ 1

В соответствии с Javadocs:

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

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