Как использовать ResourceBundle, чтобы избежать жестко заданных путей конфигурации в приложениях Java? - PullRequest
3 голосов
/ 01 октября 2008

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

Может кто-нибудь сказать мне, как я бы заменил жестко закодированный путь к ресурсу (скажем, файл данных конфигурации .properties, требуемый классом) с соответствующим использованием ResourceBundle? Простой понятный пример, если возможно, спасибо всем.

Ответы [ 4 ]

3 голосов
/ 01 октября 2008

Вы захотите изучить Resource.getBundle (String) . Вы передаете ему полное имя ресурса в пути к классам для загрузки в виде файла свойств.

2 голосов
/ 01 октября 2008

Вам не нужен ResourceBundle. Простой объект Properties может сделать эту работу. Просто используйте загрузчик классов, чтобы получить входной поток для вашего файла свойств и использовать его для загрузки значений. Если вам нужно обрабатывать более сложные пользовательские конфигурации, используйте настройки api .

С уважением

2 голосов
/ 01 октября 2008

До Java 6 ResourceBundle обычно разрешалось:

  • Строки из группы локализованных файлов свойств, используя PropertyResourceBundle
  • Объекты из группы локализованных классов, используя ListResourceBundle

Java 6 поставляется с классом ResourceBundle.Control , который открывает двери для других источников ResourceBundles, например:

  • XML-файлы (см. Пример 2 в Javadoc)
  • Строки базы данных

Надеюсь, это поможет.

0 голосов
/ 01 октября 2008

Хитрость Resource.getBundle (..) заключается в использовании загрузчика классов. Вы можете загрузить все, что есть в вашем classpath, получив к нему доступ через this.getClass (). GetClassLoader (). Resource.getBundle (..) - практический помощник для использования его в теме ресурсов / локализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...