Работа с файлами свойств вне войны с Spring - PullRequest
6 голосов
/ 01 марта 2012

Я работаю над веб-приложением Spring 3.0.5, которое обращается к LDAP и двум базам данных.У меня есть свойства с информацией о конфигурации для сервера LDAP и этих баз данных в applicationContext-security.xml и dispatcher-servlet.xml, но я хотел бы сделать так, чтобы у каждого сервера были разные свойства данных без изменения файла в WAR.Могу ли я как-то поместить файл где-нибудь еще на сервере и по-прежнему получать к нему доступ из моего приложения?

Ответы [ 2 ]

6 голосов
/ 04 марта 2012

Добавьте это в ваш контекст

<context:property-placeholder location="${envfile}"/>

Это загрузит файл свойств, расположенный в $ {envfile}, переменной, которую вы можете установить с помощью параметра запуска Java, например,

-Denvfile="file:/var/server/environment.properties"

Или, может быть, в скрипте запуска Tomcat

CATALINA_OPTS=" -Denvfile=file:/var/server/environment.properties"

Значения могут быть получены в ваших контроллерах с помощью аннотации Springs Value, например:

@Values("${myvalue}")
private String myValue;

Обратите внимание, что для этих функций требуется Spring 3.1, дополнительная информация здесь

Удачи!

0 голосов
/ 01 марта 2012

Попробуйте

<util:properties id="props" location="file:///path/to/server.properties"/>
...