2011-03-10 3 views
1

내가 작업하고있는 하나의 응용 프로그램에는 인스턴스와 관련된 여러 URL과 기타 정보가 있습니다. 그리고 필요로하는 새로운 인스턴스를 시작하는 속성 파일에서 확인해야하는 유물 인이 가진 가장 큰 문제는 물론이고java.util.prefs 또는 Commons Configuration을 사용하는 Spring 구성의 좋은 예

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

: 첫 번째 패스 속성 파일로 전형적인 봄 에게 PropertyPlaceholderConfigurer와를 사용 해당 이슈 업데이트. 유선형 배포의 경우 데이터베이스 테이블을 기반으로 ApplicationContext 부트 스트랩 자체를 갖고 싶습니다. this forum post과 같은 솔루션을 보았습니다. 더 나은 도구에 대해 알고있는 사람이 있습니까? 아니면이 문제에 대한이 defacto 접근 방식입니까? 또한 JMX 또는 기타 기능을 사용하여 런타임에 설정을 업데이트/다시로드 할 수 있지만 데이터베이스를 변경 한 후에도 응용 프로그램을 다시 시작해야 현재 위치에서 더 나은 솔루션을 얻을 수 있습니다.

+0

+1 : 나는 또한 같은 것을 할 노력하고있어 이건 내 응용 프로그램에서. 나는 이것에 대한 해결책을 가지고 있지만, 거대하고 복잡하며 * 매우 * 우아하지 않으므로 나는 더 나은 방법이 있는지보기를 열망하고 있습니다. –

+0

[이] 발견했습니다 (http://stackoverflow.com/questions/4599252/how-to-configure-a-spring-beans-with-properties-that-are-stored-in-a-database-tab/4601913). # 4601913) @ sean-patrick-floyd가 구성을 사용하여 게시하면 파일 및 다른 ApplicationContext의 데이터베이스의 다른 속성에서 데이터베이스 속성을로드하는 닭고기 달걀 문제가 발생했습니다. – Greymeister

답변

0

우리가 한 방식은 환경에 몇 가지 구성 정보를 입력하고 거기에서 관련 정보를 가져 오는 것이 었습니다.

<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}" /> 

경우 $ 모드 = dev에, 품질 보증 등