[SPRING] Spring : 프로필에 따라 다른 속성 파일 삽입
SPRINGSpring : 프로필에 따라 다른 속성 파일 삽입
첫째, 일부 상황 :
저는 현재 Google의 AppEngine (GAE)에서 Spring 프레임 워크를 사용하여 Google 서비스 중 일부에서 일부 데이터를 가져 오는 프로젝트를 진행하고 있습니다. 그렇게하기 위해 Google의 OAuth 시설을 사용합니다. 이를 위해 내 응용 프로그램과 관련된 clientSecret 및 clientId를 사용해야합니다. 이것들은 정적 인 설정 값이므로 Spring의
XML 설정 :
<util:properties id="googleProperties" location="WEB-INF/google.properties" />
수업 사용 :
@Value("#{googleProperties['google.data.api.client.id']}")
private String clientId;
내 질문:
결과적으로 clientId와 clientSecret 값은 App Engine에 배포 할 때 (내 로컬 컴퓨터에서) 개발과 다를 필요가 있습니다. 배포 할 때 속성 파일의 값을 변경하지 않고도이를 해결하기 위해 제작 및 개발을위한 여러 속성 파일을 지정할 수있는 Spring의 구성 프로필을 살펴 보았습니다. 스프링 프로파일이 문서를 기반으로 어떻게 작동하는지에 대한 아이디어가 있지만,이 특별한 상황에서 적절한 해결책이 무엇인지 확신 할 수는 없습니다.
즉, 내 응용 프로그램이 로컬로 배포되는지 또는 GAE에 배포되는지에 따라 다른 등록 정보 파일을 어떻게 삽입 할 수 있습니까?
해결법
-
==============================
1.몇 가지 옵션 :
몇 가지 옵션 :
접두어를 사용하여 환경 별 속성을 제어 할 수 있습니다.이 작업은 시스템 변수를 사용하여 수행 할 수 있습니다.
<util:properties id="googleProperties" location="WEB-INF/${ENV_SYSTEM:dev}/google.properties" />
이 경우 항상 아래에 표시됩니다.
<util:properties id="googleProperties" location="WEB-INF/dev/google.properties" />
ENV_SYSTEM 시스템 변수가 설정되어 있지 않으면 기본적으로. 예를 들어 qa로 설정하면 자동으로 아래에 표시됩니다.
<util:properties id="googleProperties" location="WEB-INF/qa/google.properties" />
또 다른 방법은 bean을 특정 프로파일로 만드는 것입니다. 예 :
<beans profile="dev"> <util:properties id="googleProperties" location="WEB-INF/google-dev.properties" /> </beans> <beans profile="qa"> <util:properties id="googleProperties" location="WEB-INF/google-qa.properties" /> </beans>
적절한 googleProperties는 프로필 집합에 따라로드됩니다. 예를 들어 WEB-INF / google-dev.properties를로드합니다.
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.getEnvironment().setActiveProfiles( "dev" ); ctx.load( "classpath:/org/boom/bang/config/xml/*-config.xml" ); ctx.refresh();
-
==============================
2.당신은 올바른 길을 가고 있습니다, 우리의 어플리케이션에서 우리는 동일한 시나리오를 가지고 있으며 우리는 "프로파일"을 사용하여 속성을 관리합니다. 우리는 프로덕션 용으로 두 개의 구성 파일을 사용하고 그에 따라 설정된 프로파일로 테스트 용으로 두 개의 구성 파일을 사용합니다.
당신은 올바른 길을 가고 있습니다, 우리의 어플리케이션에서 우리는 동일한 시나리오를 가지고 있으며 우리는 "프로파일"을 사용하여 속성을 관리합니다. 우리는 프로덕션 용으로 두 개의 구성 파일을 사용하고 그에 따라 설정된 프로파일로 테스트 용으로 두 개의 구성 파일을 사용합니다.
from https://stackoverflow.com/questions/9435246/spring-injecting-different-properties-file-according-to-profile by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring JPA의 기존 엔티티를 참조하는 새로운 엔티티를 저장하는 방법은 무엇입니까? (0) | 2019.01.14 |
---|---|
[SPRING] Spring Security 3.2에서 Access-Control-Origin 필터를 문제없이 설치하는 방법 (0) | 2019.01.14 |
[SPRING] Spring 캐시 캐시에 다중 캐시 관리자 구성을 갖는 방법 (0) | 2019.01.13 |
[SPRING] Spring에서 무시되는 Jackson 주석 (0) | 2019.01.13 |
[SPRING] 봄 - jsp 파일에 이미지 표시 (0) | 2019.01.13 |