@

한결·2023년 3월 27일
0

Study

목록 보기
12/13

컨트롤러 클래스
MVC 패턴 중 핸들러 메소드를 포함하는 컨트롤러 빈을 만드는 과정

  • @Controller
  • @RestController=@ResponseBody+@Controller

핸들러 메소드
스프링 웹서비스가 받는 URI 요청을 컨트롤러 클래스의 특정 메소드에 매핑하는 과정

  • @RequestMapping
  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

함수형 프로그래밍

  • HandlerFunction == @RequestMapping
    입력 : ServerRequest
    출력 : ServerResponse

  • RouterFunction == @RequestMapping
    입력 : ServerRequest
    출력 : Optional

    HandlerFunction VS RouterFunction

  • HandlerFunction의 결과 : data

  • RouterFunction의 결과 : date + behavior

기타
• RequestPredicates
• RouterFunctions.route().nest()
• RouterFunctions.route().before()
• RouterFunctions.route().after()
• RouterFunctions.Builder.onError() • RouterFunctions.Builder.filter()

핸들러 메소드?

Spring Web에서 사용자의 request를 받아 response를 리턴하는 메소드
1. 매핑정보 2. request 3. response

@RequestMapping

핸들러 메소드가 받을 수 있는 요청들
메소드 파라미터로 적어 넣을 수 있는 타입들
• ServletRequest, ServletResponse, HttpSession
• WebRequest, NativeWebRequest
• @RequestParam, @PathVariable
• @RequestBody, HttpEntity
• @ModelAttribute, @SessionAttribute, Model, ModelMap
• @RequestHeader, @CookieValue
• Principal, Locale, TimeZone, InputStream, OutputStream, Reader, Writer, ....

핸들러 메소드가 내보낼 수 있는 응답들
메소드가 리턴할 수 있는 타입들
• ModelAndView
• String, View
• @ModelAttribute, Map, Model • @ResponseBody
• HttpEntity, ResponseEntity • HttpHeaders
• void

2개의 댓글

comment-user-thumbnail
2023년 4월 1일

퍼가요~

1개의 답글