2013-04-23 5 views
1

Maven 리소스 필터링 메커니즘이 프로필의 값을 대상 파일에 삽입하는 시점이 궁금합니다. 내 응용 프로그램이 Spring을 사용하고 JVM 속성에 따라 스프링 환경에 구성 정보를 제공하는 데 사용되는 응용 프로그램 환경 파일 중 하나를 호출하기 때문에 요청합니다.메이븐 리소스 필터링 - 스프링 애플리케이션

환경 파일에서 암호 및 db 형식 정보를 Maven Settings.xml 파일로 옮기고 싶습니다. 그러나 Spring이 Maven 리소스 필터링이 작동하는 방식을 덮어 쓰거나 충돌하는 것이 궁금합니다.

목표는 Spring이 애플리케이션이 실행되는 환경을 결정하고 Maven이 필요한 값을 이미 주입 한 환경 파일을 선택하는 것입니다.

감사합니다.

답변

4

Maven은 프로세스 자원 단계에서 플레이스 홀더를 대체합니다. http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

그래서 스프링이 컨텍스트를 생성하기 시작할 때 값이 있습니다.

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>file://${config.dir}/external-config.properties</value> 
     </list> 
    </property> 
</bean> 

"config.dir는"시스템 속성에 있습니다 : 자바 -Dconfig.dir =/디렉토리/

당신은 등록 정보 파일을 읽어 봄 컨텍스트에서이를 사용할 수 PropertyPlaceholderConfigurer와 사용할 수 있습니다 아니면 컨텍스트 매개 변수가 될 수 있다고 생각합니다.

속성 파일의 $ {key}를 사용하여 bean을 구성 할 수 있습니다. 스프링의 버전에 따라 주석도 사용할 수 있습니다. 또는 PropertyResolver의 네임 스페이스도 있습니다.

그래서 필터링과 스프링은 멋지게 함께 작동합니다.

관련 문제