Вопрос по java – Файл свойств и класс констант в Java

20

Я немного запутался между использованием файла констант и файла свойств в Java.

Как решить, когда использоватьConstants.java и когда использовать.properties файл?

Perpahs вы можете получить лучшее из обоих миров, используяListResourceBundle Edwin Dalorzo

Ваш Ответ

8   ответов
0

Преимущество свойств заключается в том, что они являются внешними. Вы можете иметь один файл свойств для разработки, другой для тестирования и другой для производства. Однако очень часто редко изменяемые свойства, которые являются внутренними для работы программного обеспечения, помещаются в файл свойств, что затрудняет управление ими.

Константы OTOH компилируются, поэтому любые ошибки будут обнаружены во время компиляции.

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

1

Константы фиксируются во время компиляции. Поэтому, если вы не предвидите каких-либо изменений значений, константы будут хорошей идеей.

26

Используйте жесткие константы в вашем коде Java, когдаyou don't want пользователи / развертыватели / тестеры / тесты, меняющие их.

Используйте файл свойств, когдаyou do want это будет возможность.

Дело в том, что изменение жестко заданной константы в исходном коде вашего приложения влечет за собой редактирование исходного кода, перестройку и повторное развертывание. В отличие от этого, изменение файла свойств может быть так же просто, как запуск NotePad.

Как вы сказали, изменение файла свойств является простым, тогда как изменение файла констант требует от нас пересобрать приложение. Итак, не должны ли мы всегда использовать файл свойств? Anand
Прочитайте первое предложение ...
1

Обычно все в классе констант считается «жестко закодированным»; то есть вы должны пересобраться, чтобы внести изменения.

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

1

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

Вы используете константы, когда параметры не являются динамическими и поэтому не должны изменяться в зависимости от внешних факторов. Вы должны перекомпилировать класс каждый раз, когда вы меняете значение.

5

Мой контрольный список

Property file:

Это настраивается в зависимости от окружающей среды и т.д.

Сообщения, ярлыки и т. Д.

Применимо к конкретной ситуации (список состояний для правил и т. Д.). пары ключ-значение. Может быть изменен кем-то кроме разработчика, т.е. аналитиками, бизнес-пользователями и т. Д.

Constant:

Являются постоянными. Не настраивается. В основном для оптимизации и повторного использования. Чтобы ключи не были разбросаны.

Для таких констант, как YES = "yes". Не совсем ключевое значение. Ключи для кеша и т. Д.

Константы, гарантирующие, что при поиске и установке используется один и тот же ключ, хотя и из разных мест приложения, ПРИМЕР xyz.put (KeyConstants.SOME_KEY, & quot; somevalue & quot;); xyz.get (KeyConstants.SOME_KEY) из разных классов, из которых xyz является общим или одноразовым.

1

Есть много разных аспектов для рассмотрения. Наиболее важным является то, что

  • you can edit properties files and use it without re-compiling your application;
  • properties files contain no code, so everybody can change them without any Java knowledge.

Эти аспекты делают файл свойств действительно полезным для хранения конфигураций.

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

1
  • Constants - when you don't mind re-compiling the application each time you change value. Sort of an irony here. Why would you change something if it has been called a constant :)

  • Properties file - when you want the luxury of just changing the value and maybe restarting the application to pick up the change.

Похожие вопросы