Здравствуйте, stackoverflow,
Я обнаружил, что работаю над веб-приложением Java EE, и я точно знаю, что мое приложение будет развернуто в нескольких средах.Каждая среда может иметь немного различную конфигурацию некоторых функций, например, URL удаленных веб-сервисов.Кроме того, я хотел бы, если это возможно, выполнить следующие 2 свойства:
Для конфигурации среды не должно быть в хранилище веб-приложений
Это потому, что я чувствуюэто не принадлежит там.Я не хотел бы управлять n-конфигурациями рядом с моим исходным кодом.Более того, если бы там были секреты, я бы не хотел, чтобы каждый разработчик их видел ...
Обеспечение полноты конфигурации
Если я скажу, что мне нужен определенныйпараметр конфигурации / ресурс, тогда было бы бессмысленно, если бы он не был предоставлен.Я бы не хотел, чтобы мое приложение запускалось в таком случае.
Пожалуйста, может ли кто-нибудь более знающий и опытный помочь мне и подтолкнуть меня в правильном направлении?
Мои выводы пока
ЕстественноЯ потратил некоторое время на поиск ответа ...
Spring Framework
Я знаю, что Spring предоставляет класс Environment в качестве абстракцииконфигурации конкретной среды.Однако я не использую Spring Framework и не описывает, как разместить эту конфигурацию вне веб-приложения.
Служба Java EE JNDI
Согласно Спецификация платформы Java EE , правильный способ сделать это - использовать элементы env-entry
, resource-ref
и resource-env-ref
в моем WEB-INF/web.xml
и привязать их к значениям в контейнере веб-приложения.конфигурация.
На самом деле это звучит очень хорошо, за исключением того, что я не знаю, как обеспечить полноту этой конфигурации.Я имею в виду, я объявляю вышеупомянутые элементы, чтобы сообщить развертывателю, что они мне нужны, но я вижу (протестировано на tomcat), что приложение все еще разворачивается (и работает неправильно), когда некоторые, например, resource-env-ref, не связаны.
Я не знаю, как этого добиться, однако, если нет ничего лучше, мне все равно кажется, что это лучшее, что я могу найти.: - |