Spring MVC Components(구성 요소)
·
Spring/Spring Boot MVC
Spring MVC Components📍Handler 관련 구성요소1️⃣ Handlerhandler == controller와 같은 의미이다.2️⃣ Handler Mapping서버로 들어온 요청을 어느 Handler(Controller)로 전달할지 결정3️⃣ Handler Adapter실제 Dispatcher Servlet과 실제 핸들러 구현 사이를 이어주는 object adapterHttpRequestHandlerAdapter : HttpRequestHandler + HandlerAdapterSimpleControllerHandlerAdapter : SimpleController + HandlerAdapterRequestMappingHandlerAdapter : @RequestMapping + Han..
입력값 검증(Validation)
·
Spring/Spring Boot MVC
입력값 검증ModelAttribute나 RequestBody로 입력값을 검증할때 모든 입력값들을 if문으로 하나하나 검증하게 된다면 컨트롤러단의 코드가 굉장히 복잡해진다. 따라서 재사용가능하고 비즈니스 로직과 분리가 필요하다.Bean Validationjava SE, java EE 에서 사용되는 java beans 검증용 java API spec재사용가능하고 비즈니스 로직과 분리public String modifyUser(@Valid @ModelAttribute UserModifyRequest userRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw ne..
Spring MVC에서의 Exception Handling, Exception 종류
·
Spring/Spring Boot MVC
Spring MVC에서 Exception 처리과정1. 예외발생Spring MVC에서 컨트롤러 메서드 실행중 예외가 발생하면, 그 예외는 컨트롤러 메서드 내에서 처리되지 않고 전파된다.2. HandlerExceptionResolverDispatcher Servlet은 여러 HandlerExceptionResolver를 사용하여 예외를 처리하는데, 그중 하나가 ExceptionHandlerExceptionResolver이다.ExceptionHandlerExceptionResolver는 컨트롤러 또는 @ControllerAdvice 클래스에서 @ExceptionHandler 애노테이션 붙은 메서드를 찾아 예외를 처리하려고 시도한다. 3. @ExceptionHandler 메서드 검색ExceptionHandler..
Controller Method에 사용가능한 것
·
Spring/Spring Boot MVC
Controller Method Signiture에 올 수 있는 것들HttpServletRequest, HttpServletResponse, HttpSession, WebRequestLocaleInputStream, OutputStream, Reader, Writer@PathVariable, @RequestParam, @RequetHeader, @CookieValue, @ValueMap, Model, ModelMap, @ModelAttribute, @RequestBodyErrors, BindingResult, ...이러한 것들은 Spring에서 ArgumentResolver가 각각의 파라미터들을 처리할 수 있도록 HandlerMethodArgumentResolver를 상속해 자동으로 추가한다.Contro..
Spring Web Mvc 자동설정 코드 따라가기
·
Spring/Spring Boot MVC
저번엔 Spring Mvc가 어떤식으로 구성되어있고 왜 좋은지 알아봤습니다.Mvc의 구현 패턴 및 장점 알아보기 url : https://hellojosh.tistory.com/38 이번엔 코드를 따라가며 Mvc가 자동으로 어떻게 설정하고 따로 설정할 때 어떻게되는지 공부해보려고합니다. Mvc 자동 설정 : WebMvcAutoConfiguration대부분의 Spring 자동설정은 org.springframework.boot:spring-boot-autoconfigure 쪽에 있습니다. @AutoConfiguration( after = {DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAu..
Spring Boot MVC 소개
·
Spring/Spring Boot MVC
Spring MVC?Spring Framework가 제공하는 ServletAPI 기반의 웹 프레임 워크다음 두가지의 구현체입니다.MVC patternFront Controller pattern(DispatcherServlet) MVC pattern은 왜 좋을까?애플리케이션의 개발 영역을 Model, View, Controller 세 가지 역할로 구분한다.역할을 나눔으로서 코드의 복잡도를 줄일 수 있는 장점이 있다.코드의 복잡도를 낮추고 원하는 목적의 코드만 적용할 수 있다.  Front Controller Pattern은 왜 좋을까?Controller코드를 POJO로 구성할 수 있어서 가볍다. 왜냐하면 모든 요청을 Servlet하나만 처리하면 되기 때문에 Controller단에있는 코드는 POJO로 구..
Spring Boot AOP
·
Spring/Spring Boot
관점 지향 프로그래밍(AOP)AOP란 프로그램 구조를 다른 방식으로 생각하게 함으로써 OOP를 보완한다.OOP에서 모듈화의 핵심단위는 클래스이지만 AOP에서 모듈화의 핵심단위는 관점(aspect)이다.관점은 다양한 타입과 객체에 걸친 트랜잭션 관리같은 관심(concern)을 모듈화할 수 있게 한다.crosscutting concerns: 횡단 관심사core concerns : 주요 관심사쉽게 말하면 Service에 덕지덕지 붙는 Logging, Exception Handling, Transaction등을 안붙이고 분리하여 관리한다는 얘기이다.  AOP 주요 용어 정리Aspect관심사를 모듈화한 클래스. 로깅, 트랜잭션 관리, 보안 등과 같은 애플리케이션의 횡단 관심사(cross-cutting concer..
Spring Boot 자동 구성과 조건(@EnableAutoConfiguration)
·
Spring/Spring Boot
@EnableAutoConfiguration이 어노테이션도 참 중요한 역할을 하는데, 역할은 현재가지고 있는 의존성을 체크해서 특정 클래스들을 로드하는 역할을 한다.쉽게 설명하자면 Servlet관련된 의존성이 있으면 Servlet.class를 불러오고, Web-starter가 있으면 DispatcherServlet.class, WebMvcConfgiurer.class를 불러오는 기능이다. WebFlux 의존성이 있으면 webflux 관련된 클래스를 불러온다. 그래서 참고로! webflux 의존성이랑 web-starter의존성이 겹치면 에러가 나는 이유기도하다. 구현은 @Conditional이라는 어노테이션으로 만들어져있다.구분내용비고@ConditionalOnWebApplication프로젝트가 웹 애플리..
helloJosh
'Spring' 카테고리의 글 목록