관리 메뉴

피터의 개발이야기

Spring Profiles 본문

Programming/Spring

Spring Profiles

기록하는 백앤드개발자 2020. 12. 12. 08:00
반응형

 

ㅁ 들어가며

코드 작성 중 간단히 자바 테스트를 진행하였습니다.

@SpringBootTest를 가동시켰는데, Failed to load ApplicationContext이 발생하면서 테스트를 진행할 수 없었습니다.

스프링이 특정 value 빈을 생성하려는데, 설정 파일을 찾지 못하엿습니다.

테스트 코드에서 ActiveProfile을 어떻게 지정하는 방법을 찾으면서 그 방법에 대해서 정리해 보았다. 

 

원문을 보고 정리하였습니다.

 

@Profile

빈을 특정 프로파일에 매핑합니다.

@Component
@Profile("dev")
public class DevDatasourceConfig

프로파일 이름을 "!dev"로 하면 dev 프로필이 활성화되지 않은 경우에만 활성화가 됩니다.

 

 XML로 프로필 선언

Profiles은 XML로 구성 할 수도 있습니다. 근데 이 방법은 잘 안쓰게 될꺼 같습니다.

<beans profile="dev">
    <bean id="devDatasourceConfig" 
      class="org.baeldung.profiles.DevDatasourceConfig" />
</beans>

 

 

기본적 Profile 설정방법들

WebApplicationInitializer 인터페이스를 통해 Profile설정

@Configuration
public class MyWebApplicationInitializer 
  implements WebApplicationInitializer {

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
 
        servletContext.setInitParameter(
          "spring.profiles.active", "dev");
    }
}

 

ConfigurableEnvironment를 통한 Profile설정

환경설정에서 직접 프로필을 설정할 수도 있습니다.

@Autowired
private ConfigurableEnvironment env;
...
env.setActiveProfiles("someProfile");

 

web.xml에서 설정

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/app-config.xml</param-value>
</context-param>
<context-param>
    <param-name>spring.profiles.active</param-name>
    <param-value>dev</param-value>
</context-param>

 

JVM 시스템 환경변수

-Dspring.profiles.active=dev

 

Unix 환경 변수

export spring_profiles_active=dev

 

Maven 프로필

<profiles>
    <profile>
        <id>dev</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <spring.profiles.active>dev</spring.profiles.active>
        </properties>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <spring.profiles.active>prod</spring.profiles.active>
        </properties>
    </profile>
</profiles>

 

 

ㅁ 함께 보면 좋은 사이트

https://www.baeldung.com/spring-profiles

반응형
Comments