Каков наилучший способ справиться с конкретной конфигурацией среды в Java? - PullRequest
2 голосов
/ 14 октября 2008

У меня есть приложение, работающее в tomcat, которое имеет кучу файлов конфигурации, которые различаются для каждой среды, в которой оно работает (dev, тестирования и производства). Но не каждая строка в файле конфигурации будет отличаться в разных средах, поэтому всегда есть дублирующаяся информация, которая не обновляется, если что-то меняется.

Существует ли хороший фреймворк / библиотека, которая объединяет отдельные файлы в один со специфическими для среды блоками? Или какой-то другой способ борьбы с этим?

Ответы [ 5 ]

2 голосов
/ 14 октября 2008
  1. Назначьте разумные значения по умолчанию для всех свойств в файлах свойств, распространяемых в вашем .war-файле.
  2. Назначьте специфичные для среды значения для соответствующих свойств в контексте веб-приложения (например, conf / server.xml или conf / Catalina / localhost / yourapp.xml)
  3. Пусть ваше приложение сначала проверит контекст (для значений, специфичных для среды), и прибегнет к значениям по умолчанию в значениях свойств приложения, если переопределение не найдено.
1 голос
/ 14 октября 2008

Если вы используете maven, вы можете использовать его возможности фильтрации ресурсов, а также профили для создания файла свойств для каждой среды, в которой вы развертываете.

В качестве дополнительного бонуса maven может также развернуть ваше веб-приложение для вас.

1 голос
/ 14 октября 2008

Файл свойств - это то, что я всегда использовал. Он может редактироваться как вручную, так и внутри вашего программного обеспечения, и объект Properties может считывать и записывать себя в файловую систему. Вот страница Javadoc:

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Properties.html

0 голосов
/ 14 октября 2008

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

0 голосов
/ 14 октября 2008

Дублирование на самом деле не является проблемой, поскольку наличие центрального конфигурационного файла, который другие файлы «расширяют», в долгосрочной перспективе может вызвать головную боль.

Мой совет - использовать муравей, чтобы загрузить (скопировать и переместить) соответствующий файл (ы) на место, а затем запустить приложение (ввязываться в войну?). Просто есть разные задачи для каждой среды. Таким образом, у вас будет три конфигурационных файла (dev.config, test.config и production.config), которые будут перемещены и перезаписать конфигурацию в папке / WEB-INF в зависимости от выполняемой задачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...