[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

+ Recent posts