2009-07-16 4 views
1

Привет Как вы это решили?различные файлы конфигурации для разных серверов

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

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

Я могу создать свою собственную задачу в муравье и заменить необходимые параметры, но может быть возможность перейти на maven, и в любом случае я не уверен в этом. Или я могу использовать что-то вроде конфигуратора владельца места весны или jgroups

ответ

1

Весна может справиться с этим довольно хорошо различными способами. Подход, который я нашел наиболее полезным и гибким, заключается в настройке в каждой среде системной переменной, которая задает имя среды, например. test, dev, int, prod и т. д.

Spring может использовать эту системную переменную для загрузки правильных файлов свойств. В зависимости от ваших потребностей эти файлы свойств могут быть добавлены в приложение или загружены из внешнего местоположения. Theres примера подобного подхода здесь:

http://www.developer.com/java/ent/print.php/3811931

+0

и можно использовать его для создания файла войны с немного изменены файлы конфигурации файл? например. для одного файла войны в something.properties property address = one и для второго файла войны в том же файле something.properties address = second? thx – blefesd

+0

@blefesd - короче нет. Однако я советую не принимать такой подход. Лучше всего иметь только одну версию развертывания и иметь либо всю конфигурацию, включенную в нее, либо загруженную из внешних мест. Некоторые причины этого - простота управления версиями, возможность добавления новых окружений и отслеживания. – Pablojim

0

Я разворачивать пружину приложение упакована в WAR к любой Tomcat или WebLogic без каких-либо изменений. Он будет содержать как META-INF/context.xml для Tomcat, так и weblogic.xml для WebLogic. Не беспокойтесь, никаких изменений.

0

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

Project 
\ 
-Properties 
\ 
    -Local (your PC) 
    -Dev (shared dev server) 
    -Test (pre-production) 
    -Prod (Production) 

В каждой папке мы помещаем параллельные копии свойства/конфигурационные файлы и поставить различные конфигурации только в файле в соответствующей папке. Секрет состоял в том, чтобы управлять классом классов среды развертывания. Мы определили запись класса PROPERTIES на каждом сервере. В Prod он будет установлен в «$ ProjectDir/Properties/Prod», а при тестировании одна и та же переменная будет установлена ​​в «$ ProjectDir/Properties/Test».

Таким образом, мы могли бы связать строки базы данных с базой данных dev/test/prod, предварительно сконфигурированные и не имеющие необходимости проверять/в файле свойств каждый раз, когда мы хотели создать для другой среды.

Это также означало, что мы можем развернуть тот же самый .war/.ear файл для Test и Prod без перестройки. Любые свойства, которые не были объявлены в файле свойств, которые мы обрабатывали аналогичным образом, используя одно и то же имя JNDI в каждой среде, но используя значения, которые были специфичны для этой среды.

0

http://www.gifnoc.com/config может помочь, как он сохраняет конфигурацию на центральном месте и клиент тянет из него для различных сред

Смежные вопросы