작성
·
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