개발을 진행하다보면 환경설정 파일들을 분리하거나, 가져와야하는 경우가 많다. 이에 대하여 알아보자.
우선 활성프로필에 대하여 잠시 알아봅시다.
▶ 활성 프로파일
활성 프로파일이란 스프링 컨테이너를 실행할 때 실행 환경을 지정해주는 속성으로, 환경을 구분하기 위해 사용된다.
프로파일은 JVM의 옵션으로도 설정을 할 수 있고, 스프링에서도 설정을 할 수 있다.
JVM 옵션으로 프로파일을 설정하기 위해서는 다음처럼 옵션을 지정해줄 수 있다.
-Dspring.profiles.active=dev
우리에게 주어진 활성 프로필이 test, prod, dev 과 같이 3개의 환경이 있다고 생각해보자.
1. @Profile 을 통한 특정 Profile에 활성화 시키기
예를 들어 특정 운영 환경, dev 에서만 사용하기를 원하는 설정이 있을 수 있다.
이럴 때 해당 설정 클래스가 내가 지정한 환경에서만 활성화 되도록 설정할 수 있다. 이를 위해 @Profile을 설정한다.
@Profile("dev")
public class DevConfig {}
따라서 위 DevConfig 파일의 설정들은 현재의 프로파일(환경)이 "dev" 경우에만 활성화 되어 사용된다.
나머지 test, prod 에서는 작동하지 않는다.
즉, 내가 원하는 환경에서만 해당 설정이 동작하도록 하는 것 이다.
또한 다음과 같이 사용할수도 있다.
@Profile("!dev")
public class NotDevConfig {}
위와같이 부정표현(!)을 추가한경우 "dev"가 아닌, 즉 test, prod에서만 작동하게 된다.
2. @ActiveProfiles 를 통한 활성 프로파일 지정하기
Spring 에서는 현재의 실행 프로파일(환경)을 지정하도록 도와주는 애노테이션 이다.
즉, 내가 원하는 환경을 선택하여 실행하는 것 이다.
예를 들어 테스트 환경에서는 현재의 프로파일을 test로 설정해주어야 하는데, 다음과 같이 @ActiveProfiles를 설정해주면 해당 프로파일로 환경을 설정하면서 스프링 컨테이너가 실행된다.
@ActiveProfiles("test")
public class SomethingTestConfig {}
'BackEnd > Spring' 카테고리의 다른 글
[Spring] Feign Client 적용기 (0) | 2022.12.20 |
---|---|
[Spring] @Configuration 이란? (0) | 2022.09.12 |
[Spring] 스프링 AOP - 실전 예제 (0) | 2022.08.20 |
[Spring] 스프링 AOP - 포인트컷 - 2 (0) | 2022.08.20 |
[Spring] 스프링 AOP - 포인트컷 - 1 (0) | 2022.08.19 |
댓글