Какова наилучшая практика для размещения файлов конфигурации приложений 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 файлов