2012-11-27 2 views
2
내가 STANDART 받는다는 폴더 구조있어

:봄 속성 우선 순위

src/main/java 
src/main/resources 
src/test/java 
src/test/resources 

내 appicationContext은 다음과 포함을 :

나는 2 개 hibernate.properties 파일 정의
<!-- load properties files --> 
<context:property-placeholder location="classpath*:*.properties"/> 

-src/main/resources에 대한 하나 src/ test/resources 하나입니다. 나는 테스트를 실행할 때 내 테스트 hibernate.properties이 생산품 hibernate.properties을 오버라이드 할 것이라고 예상했다. 대신에 두 파일이로드되고 생산 버전이 사용됩니다.

Loading properties file from file [D:\projects\video_crawler_v3\out\test\core\hibernate.properties] 
Loading properties file from file [D:\projects\video_crawler_v3\out\production\core\hibernate.properties] 

속성 파일을 올바르게 설정하려면 어떻게해야합니까?

<beans> 

    ... your beans 

    <beans profile="prod"> 
     <context:property-placeholder location="classpath:/hibernate.properties" /> 
    </beans> 

    <beans profile="test"> 
     <context:property-placeholder location="classpath:/test-hibernate.properties" /> 
    </beans> 
</beans> 

활성화가 필요합니다 : 내가 컴파일 및 테스트를 옵션

+0

'hibernate.properties' 파일의 예제를 추가 할 수 있습니까? 필자는 주 구성과 테스트 구성 간의 차이점을보고 싶습니다. 감사. – Jonathan

+0

네이밍 프로퍼티 플레이스 홀더 설정 파일'hibernate.properties'는 좋은 아이디어라고 생각하지 않습니다. 'hibernate.properties'는 일반적으로 Hibernate의 설정 파일이며 Spring 속성 플레이스 홀더와는 아무런 관련이 없습니다. –

답변

2

하나를 실행하게 IntelliJ IDEA를 사용하고 있는데 예를 들면, http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/

넣어 두 "속성"버전 당신의 context.xml에 봄 프로필입니다 -Dspring.profiles.active = test를 사용하여 프로필을 만듭니다.

참고 : 단위 테스트를 실행하는 경우에도 사용은 항상 클래스 경로에 추가됩니다 SRC/메인/자원

+0

스프링 프로파일이 어떻게 해결되는지 보여 주어야합니다. 또한 경고 :이 기능은 Spring 3.1 이상에서만 사용할 수 있습니다. – Jonathan

+0

TextContext 프레임 워크 http://static.springsource.org/spring/docs/current/spring-framework를 사용하는 경우'-Dspring.profiles.active = test' 대신'@ActiveProfiles ("test")'를 사용할 수 있습니다 -reference/html/testing.html –

+0

감사합니다. 스프링 프로파일은 나에게 좋다 ... –