컴공생의 다이어리
[스프링 부트, Spring Boot] @Profile, @ActiveProfiles 본문
Development/Spring & SpringBoot
[스프링 부트, Spring Boot] @Profile, @ActiveProfiles
컴공 K 2024. 1. 15. 23:00@Profile
빈이나 컴포넌트에 프로필을 구분하여 빈을 로드하고 싶은 경우 @Profile을 활용하면 된다. 아래와 같이 @Profile을 통해 프로필(profile)이 active될 때 어떤 빈 혹은 컴포넌트를 등록할지 결정할 수 있다.
@Configuration
@Profile("prod")
public class ProdConfig{
@Bean
public DataSource dataSource(){
// ... 생략
}
}
@Configuration
@Profile("dev")
public class DevConfig{
@Bean
public DataSource dataSource(){
// ... 생략
}
}
프로필 이름 앞에 NOT 연산자인 !를 접두사로 붙여 프로필에서 제외시킬 수 있다. 아래의 경우 prod 프로필을 제외한 프로필에 대해서만 활성화 된다.
@Configuration
@Profile("!prod")
public class ProdExceptConfig{
@Bean
public DataSource dataSource(){
// ... 생략
}
}
@ActiveProfiles
@ActiveProfiles를 사용해 테스트 수행시 사용할 프로필을 지정할 수 있다. 아래의 예시의 경우 local과 default 프로필만 적용되어 동작한다.
@SpringBootTest
@ActiveProfiles("local")
public class RepoTest {
@Autowired
Repo repo;
// ... 생략
}
https://velog.io/@injoon2019/Profile-ActiveProfiles
https://memo-the-day.tistory.com/32
728x90
반응형
'Development > Spring & SpringBoot' 카테고리의 다른 글
[스프링 부트, Spring Boot] 테스트 실행환경 분리 (0) | 2023.09.30 |
---|---|
[스프링 부트, Spring Boot] 환경변수 파일(application.yml) local, dev, prod 환경 분리 (0) | 2023.08.20 |
[스프링 부트, Spring Boot] 슬랙(Slack) webhook으로 메세지 보내기 (0) | 2023.06.10 |
[MyBatis] parameterType, resultType에 내부 클래스(inner class) 사용 (0) | 2023.04.30 |
[스프링 부트, Spring Boot] 배너 커스텀 및 적용 (0) | 2022.06.22 |
Comments