Home
Java
자바 스프링에서 Profile 정보 가져오기 (Spring Profiles Active)
devfoxstar
devfoxstar
August 19, 2022
1 min

Table Of Contents

01
System.getProperty()
02
Environment.getActiveProfiles()
03
@Value
04
@Profile
05
@ActionProfiles()

스프링 프로젝트에서 Profile 설정은 기본입니다.
local, dev, qa, stg, prod 등 개발 환경에 맞게 지정해 줍니다.

가끔 지정된 Profile 정보를 스프링에서 활용할 때가 있습니다.
주로 특정 환경에서만 테스트를 하거나 분기 처리를 하는 경우에 해당합니다.

이때 Profile 정보를 가져오거나 지정하는 방법을 알아보겠습니다.


System.getProperty()

System 메서드를 활용해서 지정된 프로파일 정보를 가져옵니다.

System.getProperty("spring.profiles.active");

Environment.getActiveProfiles()

import org.springframework.core.env.Environment;

@Component
public class Test {

    @Autowired
    private Environment environment;

    public String[] getActiveProfiles() {
        return environment.getActiveProfiles();
    }

}

@Value

@Value 어노테이션은 설정 파일의 정보를 가져오는 기능을 합니다.
설정 파일의 정보를 코드에서 활용할 때 주로 사용합니다.

@Value("${spring.profiles.active}")
private String activeProfile;

@Profile

@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()

@ActionProfiles 어노테이션 역시 특정 환경에서 실행이 가능합니다.
@Profile 어노테이션과 차이는 테스트 수행 시에만 사용을 한다는 점입니다.

@ActionProfiles("dev")               
public class Test

Tags

#Java#Spring#Profile

Related Posts

Java - Record class (불변 데이터 객체 만들기)
June 11, 2024
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media