2016-11-13 2 views
0

주석으로 구성한 Spring Boot 응용 프로그램이 있습니다. application.properties 및 application- {profile} .properties 파일에 이미 데이터가 있습니다. 문제는 이제 Tomcat 6 서버에 WAR 외부 위치를 정의하여 우선 순위를 갖는 구성 파일 을 넣을 수있게하려는 것입니다. 즉, 속성 파일에 입력 한 모든 설정은 application.properties 또는 application- {profile} .properties의 값보다 우선합니다.바람둥이 6에 배포 된 Spring Boot 응용 프로그램에 외부 속성 파일 위치를 추가하려면 어떻게해야합니까?

가장 쉬운 방법으로 어떻게 이것을 수행 할 수 있습니까?

@PropertySources를 이미 추가하려고 시도했지만 속성 파일 순서에 우선 순위가 낮아 가능한 해결책이 아닙니다. 속성 파일 로딩 순서를 쉽게 변경할 수 있습니까?

배포 된 다른 응용 프로그램에 영향을 줄 수 있으므로 서버에 환경 변수를 추가 할 수 없습니다. WAR는 독립적이어야하며 필요한 모든 것을 제공해야합니다 (이 외부 속성은 파일을 덮어 씁니다).

+0

그래서 Tomcat 6 서버에 앱을 배포하고 있습니까? 그런데 왜 Spring-Boot를 사용합니까? –

+0

2016 년 이니까요? :) Tomcat 서버는 가까운 장래에 업그레이드 될 가능성이 큽니다. 하지만 지금 해결책이 필요합니다. –

+0

그냥 2016 때문에 스프링 부트를 사용하는 이유는 없습니다. Spring Boot는 기본적으로 통합 서버와 완벽한 환경을 연결하기위한 것입니다. 그렇다면 왜 추가 바람둥이 6을 사용해야합니까? –

답변

1

spring.config.locationas described in the doc을 구성하거나 EnvironmentPostProcessor을 구현하여 관계없이 적용 할 수 있습니다.

university session at Devoxx에있는 샘플은 we showcase how to read a file from the home directory이며 명령 줄 속성 다음에 추가하십시오. 똑같은 일을하고 원하는 방식으로 주문할 수 있습니다.

시도해보고 싶다면 샘플 앱은 available here입니다.

+0

spring.config.location은 환경 변수 (위에서 설명한대로 사용할 수 없음) 또는 입력 매개 변수로만 변경할 수 있습니다.이 매개 변수는 Tomcat에 적용되지 않습니다 (잘못된 것일 수 있음). –

+0

그러나 postProcessEnvironment는 유망한 것으로 들립니다. 나는 그것을 조사하고있다. –

+0

샘플을 보면 내 자신의 속성 파일이 있으면 쉽게 삽입 할 수있었습니다. 감사! –

관련 문제