Backend/SpringBoot

설정(Configuration) 오버라이딩 하기

Dean83 2025. 9. 2. 15:29

사용하다 보면, 실제 서버와 개발서버 별 각각 설정을 달리 해야 할 때가 있다. 대표적인것이 Security가 될 것이다. 

간단하게는 yaml 에 exclude를 이용해 처리를 할 수도 있겠으나, 왠지 모르게 실행을 하면 오류가 발생하였다. 

물론 오류를 찾아서 해결하는게 가장 베스트 세팅일것으로 생각 된다. 

 

그러나 세부적으로 코드에서 설정을 오버라이딩 하는게 필요할 수도 있다. 

아래의 예는 Security를 사용하나, dev 환경에서는 모든 request를 허용하는 세팅으로 바꾸는 것이다.

@Configuration
@Profile("dev")
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .csrf(csrf -> csrf.disable())
                .authorizeHttpRequests((auth) -> auth.anyRequest().permitAll());
        return http.build();
    }
}
  • @Configuration 과 @Profile을 이용해 어느 상황에서 설정을 오버라이딩 할지 정한다
  • Class 이름은 오버라이딩 할 클래스의 이름과 똑같아야 한다. (그래야 Bean을 덮어 쓴다)
  • 오버라이딩 할 bean 메소드를 골라 내용을 변경한다. 

 

**

yaml 에서 Security exclude 하는 법 (3개를 exclude 해야 한다)

spring:
  autoconfigure:
    exclude:
     - org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration
     - org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration
     - org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration