인프런 커뮤니티 질문&답변

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

Interceptor 사용해 보기

@Configuration WebMvcConfig클래스에대해

작성

·

441

0

WebMvcConfig 클래스에 @Configuration애노테이션을

사용하면

addInterceptors 메서드에 @Bean을 달아줘야 동작할줄 알았는데 @Bean 애노테이션을 안달아줘도 잘 작동하는 이유가 궁금합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

자바마스터하자님, WebMvcConfig 클래스에 @Configuration을 사용하는 경우, addInterceptors와 같은 메소드에 꼭 @Bean을 사용할 필요는 없습니다. @Configuration 애노테이션이 붙은 클래스는 스프링의 빈 설정을 담당하는 클래스로, 그 안에서 정의된 메서드 중 @Bean이 붙은 메서드는 스프링 컨테이너가 관리하는 빈으로 등록됩니다.

하지만 @Configuration 클래스 내에서 WebMvcConfigurer 인터페이스를 구현하는 경우, addInterceptors와 같은 메서드들은 오버라이딩하여 사용하기 때문에 이 메서드들을 통해 커스텀한 설정을 할 수 있습니다. 여기서 addInterceptors 메서드는 인터셉터를 추가하는 역할을 하며, 이 메소드 내에서 정의한 설정은 @Bean 애노테이션이 달리지 않아도 자동으로 스프링 MVC에 적용되게 됩니다.

자세한 내용은 스프링 부트의 공식 문서의 “Web Servlet” 섹션에서 확인하실 수 있으며, 만약 스프링 부트의 자동 설정을 그대로 사용하면서 추가적인 MVC 설정을 하고 싶다면 @Configuration 클래스에 WebMvcConfigurer를 구현하면 됩니다. 단, @EnableWebMvc는 같이 사용하면 스프링 부트의 자동 구성을 비활성화하므로 주의해야 합니다.

추가 정보가 필요하시거나 원문을 확인하고 싶으시다면 다음의 공식 문서 링크도 참고하실 수 있습니다:
- Spring MVC Auto-configuration

자바마스터하자님의 프로필 이미지
자바마스터하자

작성한 질문수

질문하기