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