2016-08-16 3 views
0

스프링 부트를 사용하여 웹 응용 프로그램을 개발했습니다. 세 가지 리소스 폴더 src/main/resources 준비, qa, 프로덕션 속성 및 특정 환경에 대한 로깅 구성을 구성합니다. 이러한 폴더와 함께 나는 dev 환경에 사용하는 resources.properties 및 로깅 구성을 가지고 있습니다. spring-boot-maven plugin을 사용하여 환경에 맞게 war 파일을 패키징하고 싶다. 어떤 도움을 주시면 감사하겠습니다.기본 application.properties를 제외하는 방법은 봄 부팅 프로젝트 용 maven의 프로필을 사용하여 사용자 정의 속성 파일을 추가 하시겠습니까?

답변

2

Convetion는 application-{profileName}.properties

포인트 10과 11 :

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

예 : application-test.properties 이 프로파일에 pom.xml

소개에서 application.properties 만들기 프로필 무시합니다 http://maven.apache.org/guides/introduction/introduction-to-profiles.html

+0

application.properties에서 작동합니다. 다른 구성 파일 (예제 로깅)에서는 어떻게해야합니까? – Manu

+0

이 '특정 환경에 대한 로깅 구성'에 대해 자세히 알려주시겠습니까? 'application.properties'에서 변수를 생성하고 필요에 따라 변수를 변경할 수는 없습니까? – yami

+0

로그 파일 경로는 각 환경마다 다를 수 있습니다. application.properties 파일에 변수를 만들 수 있지만 application.properties는 log4j2를 완전히 구성 할 수 없으므로 각 환경에 맞는 xml 구성 파일을 사용하고 있습니다. 외부 컨테이너에 전쟁을 전개하고 싶다면 배치 중에 활성 프로파일 정보를 전달할 수 없습니다. 전쟁을 포장하면서 환경 특유의 특성 만 전달하는 해결책이 있습니까? – Manu

1

Maven을 사용하여 각 환경에 대한 클래스 경로에 다른 폴더를 추가하는 대신 Spring 프로필을 사용할 수 있습니다.

  • 을 application-production.properties application-qa.properties application-staging.properties : 모든

    우선 같은 각 환경 다른 application.properties를 만들

로깅의 경우 logging.config 속성을 사용할 수 있습니다. 그래서, application-staging.properties에서 당신은 사용할 수 :

logging.config=classpath:logback-staging.xml 

을 다른 속성에서 서로 다른 logging.config 속성을 사용할 수 있습니다 파일.

이제 응용 프로그램을 spring.profiles.active 속성으로 실행하십시오.


그러나 더 쉬운 해결책은 externalized configuration을 사용하는 것입니다. 특정 프로필의 구성을 변경할 때마다 다시 작성하지 말고 application.properties 파일을 JAR/WAR 옆에 클래스 경로가 아닌 정확한 환경에 넣어 외부화 할 수 있습니다. 스프링 부트가이를 자동으로 선택합니다.

지금 당신은 또한 logback.xml을 배치하여 로깅 설정을 구체화 할 수 있습니다 (또는 log4j2.xml는 ...) 당신의 JAR/WAR 옆에 파일을 그냥 사용하여 (외부화) 응용 프로그램의 속성을 구성

logging.config=file:logback.xml 

JAR/WAR를 변경하지 않고도 구성 및 로깅을 편집 할 수 있습니다.

+0

외부 tomcat 컨테이너에 배포하는 동안 webapps 폴더에 war 파일을 추가하고 컨테이너를 다시 시작하기 만하면됩니다. 그래서 전쟁을 포장하면서 올바른 application.properties 파일을 추가해야합니다. 포장 시간에 어떻게 이것을 할 수 있습니까? >>>> 그냥 spring.profiles.active 의미 MVN 스프링 부팅과 응용 프로그램을 실행 : 네,'사용 – Manu

+0

(이 말하려고하는 무엇인가) 준비 -Dspring.profiles.active = 실행 - Dspring.profiles.active = staging'이 작동해야합니다. 또한 Tomcat 컨테이너에서이 등록 정보를 구성 할 수 있어야합니다. – g00glen00b