Spring 개발시 개발, 운영환경 프로퍼티 파일 관리하기
Spring 2011. 10. 11. 13:13
개발하면서 틈틈히 앞으로 운영될 운영환경에 배포를 하면서 확인할거 확인해야 하는 경우가 많이 있는것 같다.
하지만 개발을 하다가 운영환경에 배포를 하기 위해서는 운영환경에 맞게 이것저것 수정을 많이 해야 한다.
뭐 요런걸 방지하기 위해서 JAVA 소스에 픽스시켜 놓지 않고 변경될만한 부분을 따로 프로퍼티 파일로 빼내서 관리하는 경우가 많다.
그런데 요 프로퍼티 파일도 결국은 개발이냐 운영이냐에 따라 수정했다가~, 다시 원상복구 했다가~ 해야 한다.
뭐 대표적인 것으로는 디비접속 정보쯤 되겠다~
아무튼 Spring이 메인 프레임워크인 환경에서는 프로퍼티 파일을 아래처럼 구성하면 mode 값을 dev 나 op 로만 바꾸면 싹 적용시킬수 있다.
요렇게 설정한후 값을 가져오는 부분에서는
만약 스프링 설정 xml파일에서 값을 참조하고 싶다! 그러면
아니면 Java 클래스에서 @Value 어노테이션을 써서 가져오고 싶다면
요런 사용법을 쪼매 응용하면 다른 부분에서도 효과적으로 프로퍼티를 다룰수 있을것 같다.
하지만 개발을 하다가 운영환경에 배포를 하기 위해서는 운영환경에 맞게 이것저것 수정을 많이 해야 한다.
뭐 요런걸 방지하기 위해서 JAVA 소스에 픽스시켜 놓지 않고 변경될만한 부분을 따로 프로퍼티 파일로 빼내서 관리하는 경우가 많다.
그런데 요 프로퍼티 파일도 결국은 개발이냐 운영이냐에 따라 수정했다가~, 다시 원상복구 했다가~ 해야 한다.
뭐 대표적인 것으로는 디비접속 정보쯤 되겠다~
아무튼 Spring이 메인 프레임워크인 환경에서는 프로퍼티 파일을 아래처럼 구성하면 mode 값을 dev 나 op 로만 바꾸면 싹 적용시킬수 있다.
# mode : dev(개발), op(운영) mode=dev jdbc.mysql.driverClassName=com.mysql.jdbc.Driver jdbc.mysql.xaDriver=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource jdbc.mysql.url=${jdbc.mysql.${mode}.url} jdbc.mysql.username=${jdbc.mysql.${mode}.username} jdbc.mysql.password=${jdbc.mysql.${mode}.password} jdbc.mysql.dev.url=jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf8 jdbc.mysql.dev.username=아이디 jdbc.mysql.dev.password=비번 jdbc.mysql.op.url=jdbc:mysql://ip:3306/dbname?useUnicode=true&characterEncoding=utf8 jdbc.mysql.op.username=아이디 jdbc.mysql.op.password=비번
요렇게 설정한후 값을 가져오는 부분에서는
만약 스프링 설정 xml파일에서 값을 참조하고 싶다! 그러면
<property name="url" value="${jdbc.mysql.url}"/>요렇게 참조하고 불러오는 값은 mode 에 설정된 값에 따라 개발모드 프로퍼티값이나 운영모드 프로퍼티 값을 읽어올 것이다.
아니면 Java 클래스에서 @Value 어노테이션을 써서 가져오고 싶다면
@Value("${jdbc.mysql.url}") String url;요렇게 값을 가져올 수 있다.
요런 사용법을 쪼매 응용하면 다른 부분에서도 효과적으로 프로퍼티를 다룰수 있을것 같다.
'Spring' 카테고리의 다른 글
Spring @ResponseBody 로 리턴시 한글이 깨질때 (0) | 2013.04.16 |
---|---|
<util:properties/> 와 Spring EL 로 값 가져오기 (0) | 2013.04.12 |
bean property 간단하게 설정하기 : http://www.springframework.org/schema/p 활용 (1) | 2011.08.22 |
ContentNegotiatingViewResolver 활용 : 하나의 RequestMapping 으로 JSP, JSON, JSONP 처리하기 (0) | 2011.08.19 |
<context:property-placeholder/> 를 사용할때 property file의 encoding 지정하기 (0) | 2011.08.03 |