(내공300) 스프링 서버환경에 따른 properties 분리 문의..
-
게시물 수정 , 삭제는 로그인 필요
우선 web.xml에
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/root-context.xml
classpath*:spring/context-*.xml
</param-value>
</context-param>
이렇게 설정 되어있습니다.
현재 resource폴더 하위에 spring 폴더가 있고 ( src/main/resources/spring/ )
그곳에 context-db.xml,
context-myabtis.xml.........등이 있습니다.
여기 context-properties.xml 이라는곳에 메일서버나, 기타 등등의 정보들을 작성 해두었고
...............................................................................
ex)
<util:properties id="mailServerProp">
<prop key="mail.server">xxx.xxx.xxx</prop>
....
</util:properties>
...................................................................................
각 서비스단에서는
@Autowired
@Qualifier("mailServerProp")
private Properties properties;
properties.getProperty("mail.server");
와 같은 형태로 사용중이었습니다.
하지만 개발,운영서버 배포시 설정파일 교체가 까다로워 구동서버환경에 따라
다른 properties를 scan 하고자 합니다.
web.xml에 spring.profiles.active 를 추가해주었고,
VM argument를 통한 환경에 따른 properties를 다르게 scan하려고 합니다.
-Dspring.profiles.active=local 까지 넘겨주어 profile.active는 제대로 초기화가 된것을 확인했습니다. 하지만 4일넘게 시도해봤는데도 서버환경에 따라 다른 properties를 읽는것은 도저히 해결이 되질 않아 문의드립니다.
일단 첫번째로 시도해봤던 방법은,
context-properties.xml로 쓰던것을
spring/local/context-properties
spring/dev/context-properties ... 와같이 폴더로 서버환경을 분리, 프로퍼티 명은 동일하게
가져가는 방식으로 분리한뒤 profiles.active에 따라 다른 경로로 scan을 시도해봤으나 실패하였고
두번째로, spring/ 폴더 하위에 다른 context 파일들과 같은 dpeth에
context-local-properteis
context-dev-properties
등과 같이 파일명으로 분리를 시도도 해봤는데
모두 실패하였습니다...
Spring Boot가 아닌 Spinrg입니다.
어떻게 해야 분리하여 사용이 가능할지 문의드립니다.
<param-name>contextConfigLocation</param-name>
/WEB-INF/spring/root-context.xml
</param-value>
context-myabtis.xml.........등이 있습니다.
<prop key="mail.server">xxx.xxx.xxx</prop>
....</util:properties>...................................................................................
properties.getProperty("mail.server");
context-properties.xml로 쓰던것을