@Profile
환경에 따라 다르게 동작해야 하는 경우가 있다.
이 때 @Profile이라는 어노테이션을 활용하면 간편하게 적용이 가능하다.
먼저 product, development, test 환경이 있고
각각의 환경에서 발송 기능 사용시 다르게 동작해야 한다고 하자.
먼저 발송하는 곳 소스이다.
발송하는 곳에서 환경에 따라 분기가 되는 것은 적합하지 않다고 생각한다.
그래서 저 Sender 객체를 생성하는 곳에서 분기가 되어야 한다.
그 과정에서 @Profile을 사용한다.
위 코드만 봐도 @Profile이 어떻게 사용되는지 대충 알 수 있다.
복수도 지원하고 산술연산자도 지원한다.
어플리케이션 실행 시 각각의 profile에 따라 다른 값이 빈이 동작하는 것을 확인 할 수 있다.
@ActiveProfiles
각각의 환경 마다 테스트를 해야할 때는 @ActiveProfiles 어노테이션을 사용하면 된다.
테스트 클래스에 @ActiveProfiles("development") 라고 작성하게 되면, 해당 클래스는 profile이 development인 채로 테스트 하게 된다.
이렇게 각각의 profile에 대하여 테스트가 가능하다.
예제 소스는 아래 주소에서 확인이 가능합니다.
github.com/ByeongUkChoi/blog-code/tree/main/profile-example
반응형
'공부 > Spring' 카테고리의 다른 글
jackson으로 응답 값 직렬화할 때 속성값의 첫 단어가 한 글자인 경우 (0) | 2021.06.28 |
---|---|
Spring @Order 로 Bean 순서 정의하기 (4) | 2021.02.15 |
Spring boot test 경로가 다른 패키지 테스트 시 오류 (6) | 2021.01.07 |
Spring Data Rest 알아보기 (0) | 2020.11.20 |
옵셔널(optional)과 람다(lambda)를 이용하여 JpaRepository에서 예외 처리하기 (0) | 2020.11.17 |