[스프링] 프로파일에 따른 다른 스프링 인터셉터 설정
스프링 애플리케이션을 개발하다 보면 다양한 환경에서 동작해야 할 때가 있습니다. 예를 들어, 개발, 테스트, 운영 환경에서 각각 다른 로깅 수준이나 보안 인터셉터 설정을 적용할 수 있습니다. 이러한 경우 스프링 프로파일을 이용하여 각각의 환경에 적합한 설정을 쉽게 제어할 수 있습니다.
스프링 프로파일 설정
먼저, 프로파일에 따라 다른 설정을 적용하기 위해 프로파일을 정의해야 합니다. @Profile
어노테이션을 사용하여 각 프로파일에 적용할 빈을 지정할 수 있습니다.
@Configuration
@Profile("development")
public class DevelopmentConfig {
// 개발 환경에 적용할 설정
}
@Configuration
@Profile("production")
public class ProductionConfig {
// 운영 환경에 적용할 설정
}
프로파일별 인터셉터 설정
인터셉터를 프로파일에 따라 다르게 적용하려면 각 프로파일에 해당하는 설정 클래스를 작성해야 합니다. 아래는 프로파일에 따라 다른 보안 인터셉터를 적용하는 예제입니다.
@Configuration
@Profile("development")
public class DevelopmentInterceptorConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new DevelopmentSecurityInterceptor());
}
}
@Configuration
@Profile("production")
public class ProductionInterceptorConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new ProductionSecurityInterceptor());
}
}
위의 코드에서 DevelopmentInterceptorConfig
클래스는 development
프로파일에, ProductionInterceptorConfig
클래스는 production
프로파일에 해당하는 설정을 적용합니다.
프로파일 활성화
애플리케이션이 특정 프로파일로 동작하도록 하려면 다음과 같이 활성화할 수 있습니다.
application.properties
파일을 이용하여 프로파일을 지정하는 방법
spring.profiles.active=development
- 커맨드 라인 옵션을 이용하여 프로파일을 지정하는 방법
java -jar myapp.jar --spring.profiles.active=development
위의 설정을 통해 각각의 프로파일에 대해 다른 인터셉터 설정을 적용하여 스프링 애플리케이션을 쉽게 관리할 수 있습니다.
결론
프로파일을 이용하여 스프링 애플리케이션에 다양한 설정을 쉽게 적용할 수 있습니다. 다중 인터셉터 설정을 통해 각 프로파일에 따라 다른 동작을 구현할 수 있으며, 이를 통해 애플리케이션의 유연성과 확장성을 높일 수 있습니다.
관련 참고 자료: Spring Framework Documentation