Хороший пример конфигурации Spring с использованием java.util.prefs или Commons Configuration - PullRequest
1 голос
/ 10 марта 2011

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

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="classpath:application.properties"/>
</bean>

Основная проблема в этом, конечно же, в том, что файл свойств представляет собой артефакт, который должен быть зарегистрирован, и для запуска нового экземпляра потребуется обновить этот артефакт. Для упрощенного развертывания я бы хотел, чтобы сам ApplicationContext самозагрузился на основе таблиц базы данных. Я видел такие решения, как в этом сообщении на форуме , кто-нибудь здесь знает о лучших инструментах или это дефактный подход к этой проблеме? Я также хотел бы иметь возможность обновлять / перезагружать настройки во время выполнения, используя JMX или другие средства, но необходимость перезапускать приложение после изменений в базе данных все равно будет лучшим решением для текущей.

1 Ответ

0 голосов
/ 17 марта 2011

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

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
   <property name="searchSystemEnvironment" value="true" />
</bean>

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

<bean id="db" class="org.DataSource"
        p:databaseServer="${${MODE}_DBSERVER}"
        p:databaseName="${${MODE}_DBNAME}" />

, где $ MODE = dev, qa и т. Д.

...