Какова наилучшая практика для размещения файлов конфигурации приложений Java?

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

Будет ли рекомендация отличаться от автономного приложения (.jar) к веб-приложению (.war)?

Ответы

Ответ 1

Вы обнаружите, что многие проекты с открытым исходным кодом следуют структуре каталогов используемой Maven. В этой настройке исходный код приложения хранится в src/main/java, ресурсах приложений, включая файлы свойств, в src/main/resources и других конфигурационных файлах в src/main/config. Файлы, связанные с модульными тестами, используют аналогичную структуру каталогов; src/test/java и src/test/resources.

Лично я склонен использовать этот макет из-за его широкого использования. Я также сохраняю каталог "etc" под корнем проекта для размещения файлов, которые напрямую не связаны с приложением. Например, я сохраняю файлы конфигурации для PMD и Checkstyle и т.д.

Ответ 2

В общем, общепринятой практикой является наличие каталога resources для файлов конфигурации, которые копируются в артефакт сборки в процессе сборки. Maven использует это в своей структуре проекта по умолчанию. В каталоге resources у вас также может быть каталог META-INF и/или каталог WEB-INF в приложении, упакованном как война.

Ответ 3

Я использую:

  • Файлы META-INF/для jar
  • WEB-INF/для war файлов