Развертывание нескольких сред в Spring-MVC - PullRequest
1 голос
/ 25 апреля 2010

В настоящее время все веб-приложения развертываются с использованием отдельных файлов конфигурации:

<!-- <import bean.... production/> -->
<import bean... development/>

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

Я хочу добавить Logging в мое приложение, которое в основном говорит «RUNNING IN PRODUCTION MODE», с описанием развернутых сервисов и в каком режиме они работают.

RUNNING IN PRODUCTION MODE 
Client Service - Production
Messaging Service - Local

и так далее ...

Возможно ли это в Spring при обычном развертывании (войне на сервере)? Что еще люди делают для управления развертываниями и конфигурациями программного обеспечения?

Если нет, то какими еще способами вы могли бы достичь чего-то подобного?

Ответы [ 2 ]

2 голосов
/ 25 апреля 2010

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

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

Этот файл загружается из classpath, который может работать для вас или может не зависеть от того, как вы запускаете приложение. Таким образом, вы можете свойства в нем, как:

environment.message=DEVELOPMENT ENVIRONMENT

У вас есть несколько вариантов, как получить это на веб-странице. Вероятно, самое простое - использовать перехватчик, чтобы добавить атрибут запроса и ввести значение $(environment.message} из конфигурации Spring.

В любом случае, надеюсь, что это направит вас в правильном направлении.

1 голос
/ 04 марта 2012

Это также возможно с помощью функции profile , добавленной в Spring 3.1. Смотри здесь .

...