[Spring]
# Profile 기능
1) spring profile 이란?
- Spring Profiles provide a way to segregate parts of your application configuration and make it only available in certain
environments. Any @Component
or @Configuration
can be marked with @Profile
to limit when it is loaded
- 어플리케이션의 여러 환경들을 설정해놓고 필요시마다 원하는 환경으로 선택 구동하게끔 설정해주는 기능.
- Spring 3.1 부터 등장한 기능으로, 환경 별로 다른 profile을 적용할 수 있게 하는 기능.
- 주로 어플리케이션 개발/테스트/운영 환경 설정에 자주 쓰인다.
2) 설정 방법
(1)application context 의 beans 에 환경 별 profile 등록
<beans profile="dev"> <bean id="" class=""> <property name="" value=""/> --> 개발환경 profile </bean> </beans> <beans profile="prd"> <bean id="" class=""> <property name="" value=""/> --> 운영환경 profile </bean> </beans> |
(2) 등록한 bean 중 구동할 profile 선택 활성화
방법1) JVM property로 설정
: tomcat 서버 더블 클릭 > open launch configuration > arguments 탭 > VM arguments 에 아래 설정 추가
-Dspring.profiles.active=dev --> 개발환경 용 profile 활성화 시 |
방법2) web.xml 에 설정
<context-param> <param-name>spring.profiles.active</param-name> <param-value>dev</param-value> </context-param> |
방법3) annotation 으로 설정
: 설정 파일에 각 환경별로 설정한 후, @Configuration + @Profile("설정한환경 value") 로 구동할 수 도 있다.
@ContextConfiguration("/context-common.xml") + @ActiveProfiles("dev")
--> junit 등으로 test case 돌릴 때 유용
@Configuration @Profile("dev") public class SampleClass { ..... } |
방법4) programming으로 설정
: 어플리케이션 구동 전, SpringApplication.setAdditionalProfiles() 를 사용하거나
, spring이 제공하는 인터페이스 ConfigurableEnvironment 를 통해 설정하여 활성화 할 profile 설정
__________________________________________________________________________________________________________________________________________________________
** 본 포스팅에 대해 수정해야할 부분이나 추가 의견 등이 있으신 분들은 댓글 달아주세요. 언제나 환영입니다 :)
** 본 포스팅은 아래의 reference 들을 참고하여 내용을 덧붙인 글입니다. 혹시, 문제가 되는 경우 알려주시면 조치하도록 하겠습니다.
** 본 포스팅을 reference 자료로 참고하실 분들은 출처를 꼭 밝혀주시기 바랍니다.
- http://docs.spring.io/spring-boot/docs
- http://www.lesstif.com/
'Spring' 카테고리의 다른 글
[에러] no matching editors or conversion strategy found (0) | 2017.04.20 |
---|---|
(작성중) dispatcher-servlet.xml 설정 (0) | 2017.04.16 |
[Spring] Transaction 관리 (0) | 2017.03.12 |
Spring - BeanNameViewResolver (0) | 2017.01.29 |