fornit1917
@fornit1917

Как принято конфигурировать окружение для web-приложения на Java?

В рамках изучения Java пишу небольшое web-приложение без использования фреймворков, только Servlets + Freemarker. Приложение собираю Maven-ом и деплою в Tomcat.
Мне хотелось бы где-то в конфиге иметь переменную, указывающую на то, в каком режиме запускается приложение (production/development/test), и чтобы в коде я мог читать значение этой переменной. Я могу добавить такой параметр в web.xml как context-param. Но мне непонятно, как можно сделать так, чтобы удобно и автоматически в него подставлялось "production", когда я буду деплоить приложение действительно на production сервер.
В качестве примера, как я это делал на PHP: там был конфиг, в котором значения некоторых параметров (пароль бд, окружение и т.д.) не были указаны явно. Они брались из другого файла, который у меня добавлен в игнор git-а. На рабочей машине он содержал настройки для development-окружения, а при деплое на production-сервер в него соответственно подставлялись настройки для production.
Можно ли нечто подобное в моем случае сделать на Java? И как вообще в мире Java принятно с этим управляться? Спасибо.

UPD: у меня еще была идея написать Listener, который при старте приложения читает какой-то конфиг (property-file), затем, если по определенному пути есть еще один конфиг, то читает его и переопределяем им соотвествующие свойства из первого конфига. Таким образом, я могу во втором конфиге разместить параметры для production и не хранить его в git-репозитории. Такой подход используется, или есть что-то более вменяемое?
  • Вопрос задан
  • 433 просмотра
Решения вопроса 1
zolt85
@zolt85
Программист
Да тут собственно ничего особенного не придумано. Конкретно в maven можно это разрулить профилями. Грубо говоря, профили позволят maven-у намекнуть, какой файл с настройками положить в сборку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@protven
Передавайте путь к конфигурационному файлу через системные переменные, например. Или в вашем контейнере (Томкат) настраиваете data-source, и приложение при старте читает конфиги из БД. Вариантов масса.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
Bell Integrator Ульяновск
До 400 000 ₽
07 мая 2024, в 17:40
300 руб./за проект
07 мая 2024, в 17:38
7000 руб./за проект