Spring/Spring MVC 6

[Spring MVC] 2-4. Handler Methods: Controller Advice

1. Controller Advice 특정 컨트롤러나 전체 컨트롤러에 걸쳐 로직을 중앙화하는데 사용되는 어노테이션입니다. 예외 처리, 바인딩 설정, 모델 어트리뷰트 설정 등에 사용됩니다. @ExceptionHandler, @InitBinder, @ModelAttribute 적용 범위 기본적으로 해당 메서드가 선언된 @Controller 내에서만 적용됩니다. @ControllerAdvice나 @RestControllerAdvice 클래스 내에서 선언된 경우, 어느 컨트롤러에서든 적용될 수 있습니다. 빈 등록 @ControllerAdvice @ComponentScan 메타-어노테이션되어 있습니다. 컴포넌트 스캔을 통해 스프링 빈으로 등록될 수 있습니다. @RestControllerAdvice @Control..

Spring/Spring MVC 2023.10.17

[Spring MVC] 2-3. Handler Methods: DataBinder

1. @InitBinder WebDataBinder 객체를 초기화하는 데 사용되는 메서드를 표시하는 어노테이션입니다. 컨트롤러에서 요청 데이터의 바인딩과 변환을 제어하고 사용자 정의하는데 유용한 도구입니다. WebDataBinder 스프링의 데이터 바인딩과 유효성 검사 기능을 제공합니다. 설정을 조정하여 특정 데이터 형식이나 커스텀 타입을 제대로 처리할 수 있습니다. 기능 문자열 기반 요청 값 변환 문자열 기반 요청 값을 컨트롤러 메서드의 타겟 타입으로 변환합니다. 요청 파라미터, 경로 변수, 헤더, 쿠키 등 요청 파라미터 바인딩 클라이언트로부터의 요청 파라미터를 모델 객체에 바인딩합니다. 모델 객체 값 포맷팅 HTML 폼을 렌더링 할 때 모델 객체 값을 문자열로 포맷합니다. 2. PropertyEdit..

Spring/Spring MVC 2023.10.17

[Spring MVC] 2-2. Handler Methods: Type Conversion

1. Type Conversion String-based Request Input 어노테이션이 붙은 컨트롤러 메서드 인수들은 대개 문자열 기반의 요청 입력을 나타냅니다. Type Conversion 인수가 String 이외의 다른 것으로 선언되었을 경우 타입 변환이 필요할 수 있습니다. 이러한 변환은 구성된 컨버터를 기반으로 자동으로 적용됩니다. 2. Convertion Types Default Supported Types 기본적으로, int, long, Date 등의 단순한 타입들이 지원됩니다. Customizing Type Conversion 타입 변환을 사용자 정의하려면 WebDataBinder를 통해 할 수 있습니다. 또는 FormattingConversionService에 Formatter를 등..

Spring/Spring MVC 2023.10.17

[Spring MVC] 2-1. Handler Methods: Method Arguments

Method Arguments Spring MVC에서 지원하는 handler method의 argument 입니다. Class WebRequest, NativeWebRequest 직접 Servlet API를 사용하지 않고 요청 매개변수 및 요청 및 세션 속성에 액세스할 수 있습니다. jakarta.servlet.ServletRequest jakarta.servlet.ServletResponse 웹 요청과 응답에 대한 기본 인터페이스입니다. 다양한 요청 및 응답 유형에 대한 액세스를 제공합니다. HttpServletRequest와 같은 구체적인 서블릿 요청 유형으로 캐스팅될 수 있습니다. (ServletRequest, HttpServletRequest) (Spring’s MultipartRequest, M..

Spring/Spring MVC 2023.10.17

[Spring MVC] 1-2. DispatcherServlet: Special Bean Types

DispatcherServlet는 WebApplicationContext의 대리 구성요소에 작업을 위임하여 요청을 처리합니다. 대리 구성요소는 Spring IoC Container에 Bean으로 등록되어 적절하게 사용됩니다. 대리 구성요소는 Bean으로 등록되므로 커스터마이징할 수 있습니다. 1. HandlerMapping 들어오는 웹 요청을 적절한 핸들러에 연결하는 역할을 담당합니다. 해당 요청을 처리하기 전과 후에 추가적인 작업을 수행하기 위해 인터셉터를 사용합니다. 핸들러 매핑의 구현 타입에 따라 핸들러 매핑의 동작이 달라집니다. 주요 핸들러 매핑 구현체 RequestMappingHandlerMapping @RequestMapping 애노테이션이 있는 메서드에 매핑합니다. SimpleUrlHandl..

Spring/Spring MVC 2023.10.16

[Spring MVC] 1-1. DispatcherServlet: Context Hierarchy

프론트 컨트롤러 애플리케이션에서 요청을 한 곳에서 받아서 적절한 컨트롤러나 핸들러로 라우팅하는 설계 패턴입니다. Spring MVC는 프론트 컨트롤러 패턴 주위에 설계되었습니다. DispatcherServlet Spring MVC에서 프론트 컨트롤러 역할을 담당합니다. 요청에 따라 적절한 컨트롤러나 뷰 리졸버, 예외 핸들러 등으로 라우팅하는 작업을 수행합니다. Java 구성 방식이나 web.xml을 통해 할 수 있습니다. DispatcherServlet은 일반적인 서블릿처럼 선언되고 매핑됩니다. public class MyWebApplicationInitializer implements WebApplicationInitializer { @Override public void onStartup(Servle..

Spring/Spring MVC 2023.10.16