티스토리 뷰
Web MVC
WebMvcConfigurer 자체는 인터페이스이기 때문에 기본 구현이 없습니다. 즉, 개발자가 필요한 메서드를 오버라이드하여 원하는 기능을 추가하거나 수정해야 합니다.
다만, Spring Boot는 기본적으로 WebMvcConfigurer를 사용하지 않아도 대부분의 Web MVC 관련 설정을 자동으로 구성해줍니다. 이러한 Spring Boot의 기본 설정 덕분에 WebMvcConfigurer는 필요한 경우에만 사용하면 됩니다.
Spring Boot의 디폴트 기능 (자동 설정)
Spring Boot는 다음과 같은 Web MVC 관련 기능을 기본적으로 제공합니다:
- 정적 리소스 처리
- classpath:/static/, classpath:/public/, classpath:/resources/, /META-INF/resources/ 디렉토리에서 정적 파일(이미지, CSS, JS)을 자동으로 제공.
- URL 패턴 /static/** 등으로 매핑됨.
- Thymeleaf와 같은 템플릿 엔진 기본 설정
- 템플릿 파일을 src/main/resources/templates 디렉토리에서 자동으로 찾음.
- Content Negotiation (컨텐츠 협상)
- 요청 헤더에 따라 JSON, XML, HTML 등의 응답 형식을 자동으로 선택.
- 기본 예외 처리
- Spring Boot는 기본적인 에러 페이지를 제공하고, @ControllerAdvice로 확장 가능.
- CORS 기본 설정
- 필요 시 application.properties에서 기본적인 CORS 설정 가능:
- HTTP 메시지 컨버터
- JSON (Jackson) 및 XML (JAXB) 처리를 위한 기본 컨버터를 자동으로 등록.
- Locale 설정
- 국제화(i18n) 및 지역화(Locale) 설정 지원.
WebMvcConfigurer로 수정 가능한 디폴트 기능
Spring Boot의 자동 설정을 수정하거나 확장하고 싶을 때 WebMvcConfigurer를 사용할 수 있습니다. 예를 들어:
- 정적 리소스 추가 Spring Boot가 제공하는 기본 정적 리소스 외에 추가 경로를 등록할 수 있습니다.
-
java코드 복사@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/images/**").addResourceLocations("file:/external/images/"); }
- CORS 추가 설정 Spring Boot의 기본 설정 외에 더 복잡한 CORS 규칙을 추가할 수 있습니다.
-
java코드 복사@Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**").allowedOrigins("https://mydomain.com"); }
- 인터셉터 등록 추가적인 요청/응답 처리를 위해 인터셉터를 추가.
-
java코드 복사@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyCustomInterceptor()).addPathPatterns("/**"); }
디폴트 기능을 커스터마이징하는 방법
@EnableWebMvc 어노테이션을 사용하면 Spring Boot의 자동 설정을 끄고 완전히 수동으로 Web MVC 설정을 작성할 수 있습니다. 하지만 보통은 자동 설정을 유지하면서 WebMvcConfigurer로 필요한 부분만 수정하는 것이 좋습니다.
요약
- WebMvcConfigurer 자체에는 기본 구현이 없지만, Spring Boot는 Web MVC의 디폴트 설정을 제공.
- Spring Boot의 기본 동작을 수정하거나 확장하고 싶을 때 WebMvcConfigurer를 사용.
- 필요한 기능만 선택적으로 오버라이드하여 유연하게 사용할 수 있음.
WebMvcConfigurer 오버라이딩
Spring MVC의 설정을 사용자 정의할 수 있도록 제공되는 인터페이스
현하면 애플리케이션의 Web MVC 동작(예: 인터셉터, 리소스 핸들링, 뷰 컨트롤러 등록 등)을 커스터마이징 가능
Spring Boot의 자동 설정을 유지하면서도 필요한 부분만 수정할 수 있는 유연한 방법을 제공
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 후보키
- 124 나라의 숫자
- 2018 카카오 공채
- 큰 수 만들기
- 17825
- 카카오 2020 공채
- java
- 라면공장
- 단체사진 찍기
- 주사위 윷놀이
- 문자열을 정수로 바꾸기
- 찾아라 프로그래밍 마에스터
- 카카오2020 공채
- 오블완
- 17779
- 투포인터
- programmers
- 정수 내림차순으로 배치하기
- 3954
- 가장 큰 정사각형 찾기
- 자바
- 2019 카카오 공채
- DP
- 티스토리챌린지
- 괄호 변환
- 프로그래머스
- 짝지어 제거하기
- Brainf**k 인터프리터
- 백준
- 게리맨더링 2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함