본문 바로가기

좋아하는 것_매직IT/1.spring

11.Spring, 스프링MVC의 핵심개념 중 RequestMapping 에 대해서 알아볼께요.

반응형

RequestMapping이란?

  • 말 그대로, URI를 컨트롤러 or 컨트롤러 메소드에 매핑하는 데 사용됨.
  • 그럼, 어느 레벨에서 수행할 수 있을까요?
    • 정답은
      • 클래스
      • 메소드
  • 그리고, 선택적 메소드 파라미터를 사용하면 메소드를 특정 요청 메소드에 매핑할 수 있음.
    • GET, POST 등등
  • 추가적으로 아래와 같은 요청 메소드별 전용 어노테이션도 존재함(스프링 4.3 이후 도입)
    • 요청메소드 애노테이션 비고
      POST @PostMapping  
      GET @GetMapping  
      DELETE @DeleteMapping  
      PUT @PutMapping  
      • 설명
        • 위의 어노테이션을 사용하면 핸들러 메소드를 조금 더 간결하게 코딩하게 해줌.
        • 예시

  • 전용 어노테이션을 아래와 같이 사용해도 위와 동일함

그럼, RequestMapping 요청에 대한 주요 3가지 예시를 소개해볼께요.

  • 예시1) 메소드에 하나의 RequestMapping 만 있는 경우

  • 설명
    • userInfo 메소드에는 URI(/userinfo)에 GET / POST 및 기타 등등 요청 타입에 매핑됨.
  • 예시2) RequestMapping 메소드에 RequestMethod.GET 이 정의 되어 있을경우

  • 설명
    • userInfo 메소드에는 URI(/userinfo)에 GET 요청만 매핑됨.
  • 예시3) 클래스 / 메소드에 RequestMapping 메소드가 있을 경우

  • 설명
    • userInfo 메소드에는 URI(/thubuser/userinfo)에 GET 요청만 매핑됨.
      • 즉, 2가지 RequestMapping 메소드의 조합은 URI를 결정하는데 사용됨.

그럼, RequestMapping 관련 주요 어노테이션에 대해서 알아볼까요?

  • 주요 어노테이션 정리
    • 어노테이션 설명 비고
      @RequestParam HTTP 요청 파라미터에 액세스하기 위해 사용.  
      @RequestHeader HTTP 요청 헤더에 액세스하기 위해 사용  
      @SessionAttribute HTTPSession으로 부터 속성을 액세스하기 위해 사용  
      @RequestAttribute HTTP 요청 속성에 액세스하기 위해 사용  
      @PathVariable

      URI 템플릿

      즉, 예를 들면, ./user/{userid}의 변수에 대한 액세스하기 위해 사용

       

​​​​​​​​​​​​​​​​​​​​​​​​​​​​그럼, RequestMapping 관련 주요 지원되는 리턴 타입에 대해서 알아볼께요.

  • 주요 리턴 타입 정리
    • 리턴타입 설명 비고
      ModelAndView 객체에 Model 과 View 이름에 대한 참조가 포함됨.  
      Model Model 만 반환됨.
       - View 이름은 DefaultRequestToViewNameTranslator를 사용함.
       
      View 암묵적으로 정의된 Model 이 있는 View  
      String 쀼 이름에 대한 참조  
      Map Model을 노출하는 간단한 Map  

결론

  • RequestMapping이란,  URI를 컨트롤러 or 컨트롤러 메소드에 매핑하는 데 사용됨.
  • RequestMapping 관련 주요 지원되는 리턴 타입은 아래와 같음.
    • ModelAndView, Model, View, String, Map
  • 오늘도 RequestMapping 관련 지식에 대한 마술(?) 한가지 획득완료! 감사합니다. ^^
300x250