스프링 프로젝트에서 Profile
설정은 기본입니다.
local, dev, qa, stg, prod 등 개발 환경에 맞게 지정해 줍니다.
가끔 지정된 Profile 정보를 스프링에서 활용할 때가 있습니다.
주로 특정 환경에서만 테스트를 하거나 분기 처리를 하는 경우에 해당합니다.
이때 Profile 정보를 가져오거나 지정하는 방법을 알아보겠습니다.
System 메서드를 활용해서 지정된 프로파일 정보를 가져옵니다.
System.getProperty("spring.profiles.active");
import org.springframework.core.env.Environment; @Component public class Test { @Autowired private Environment environment; public String[] getActiveProfiles() { return environment.getActiveProfiles(); } }
@Value
어노테이션은 설정 파일의 정보를 가져오는 기능을 합니다.
설정 파일의 정보를 코드에서 활용할 때 주로 사용합니다.
@Value("${spring.profiles.active}") private String activeProfile;
@Profile
어노테이션을 활용하면 특정 환경에서만 실행이 가능합니다.
활용 가능한 표현식은 !, &, |
세 가지입니다.
빈이나 컴포넌트를 선택적으로 활용할 수 있습니다.
@Profile("dev") //dev public void Test @Profile("!dev") //dev 제외 public void Test @Profile({"qa", "stg"}) //qa, stg public void Test @Profile("!local | (qa & stg)") //local 아니거나 qa, stg public void Test
@ActionProfiles
어노테이션 역시 특정 환경에서 실행이 가능합니다.
@Profile
어노테이션과 차이는 테스트 수행 시에만 사용을 한다는 점입니다.
@ActionProfiles("dev") public class Test