길민호(ethan.mino)
코딩수첩
길민호(ethan.mino)
전체 방문자
오늘
어제
  • 분류 전체보기 (215)
    • Computer Science (0)
    • Web (6)
      • CSS (0)
      • HTML (0)
    • Node.js (0)
    • Javascript (2)
    • Java (46)
      • Spring (27)
      • Jsp (0)
    • C\C++ (2)
    • Programming (0)
    • AI (0)
    • Database (7)
    • Git (5)
    • Algorithm (119)
      • Stack (0)
      • Queue (0)
      • Linked List (0)
      • Sort (0)
      • Simulation (27)
      • Recursion (0)
      • Backtracking (4)
      • Two Pointer (3)
      • Dynamic Programming (19)
      • Greedy (10)
      • Graph (3)
      • Dijkstra (1)
      • BFS\DFS (8)
      • Floyd (1)
      • MST (4)
      • Tree (4)
      • Binary Search (8)
      • Binary Search Tree (4)
    • IntelliJ (4)
    • Vscode (0)
    • Operating System (0)
    • 후기 (3)
    • 성장일지 (13)
    • 스터디 (7)
    • 설치 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ㅡ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
길민호(ethan.mino)

코딩수첩

아큐먼트 리졸버란?
Java/Spring

아큐먼트 리졸버란?

2020. 7. 17. 23:15

1. 아규먼트 리졸버란?

  • 컨트롤러의 메서드의 인자로 사용자가 임의의 값을 전달하는 방법을 제공하고자 할 때 사용된다.
  • 예를 들어, 세션에 저장되어 있는 값 중 특정 이름의 값을 메서드 인자로 전달한다.

 

2. 아규먼트 리졸버 작성 방법 1/2

  • org.springframework.web.method.support.HandlerMethodArgumentResolver를 구현한 클래스를 작성한다.
  • supportsParameter() 메서드를 오버라이딩 한 후, 원하는 타입의 인자가 있는지 검사한 후, 있다면 true를 리턴한다.
  • resolveArgument() 메서드를 오버라이딩 한 후, 컨트롤러 메서드의 인자로 전달할 값을 리턴한다. (supportsParameter()가 true를 리턴할 때에만 resolveArgument() 메서드가 호출됨.)

3. 아규먼트 리졸버 작성 방법 2/2

  • Java Config에 설정하는 방법
    • WebMvcConfigurerAdapter를 상속받은 Java Config 파일에서 addArgumentResolvers 메서드를 오버라이딩 한 후, 원하는 아규먼트 리졸버 클래스 객체를 등록한다.
  • xml 파일에 설정하는 방법.
<mvc:annotation-driven>
    <mvc:argument-resolvers>
        <bean class = "아규먼트 리졸버 클래스"></bean>
    </mvc:argument-resolvers>
</mvc:annotation-driven>

 

4. Spring MVC의 기본 ArgumentResolver들

  • getDefaultArgumentResolvers()메서드를 보면 기본으로 설정되는 아규먼트 리졸버에 어떤것이 있는지 알 수 있다. Map 객체나 Map을 상속받은 객체는 Spring에서 이미 선언한 아규먼트 리졸버가 처리하기 때문에 전달할 수 없다. Map 객체를 전달하려면 Map을 필드로 가지고 있는 별도의 객체를 선언한 후, 사용해야 한다. 소스코드
  • 컨트롤러의 메서드에 HttpServletRequest나 HttpSession 등을 파라미터로 지정하면 값이 전달되는데, 이는 Spring MVC가 기본으로 제공하는 Argument Resolver가 있기 때문이다.

Sprin MVC의 기본 ArgumentResolver들

참조 URL

  • https://www.edwith.org/boostcourse-web/lecture/16806/

'Java > Spring' 카테고리의 다른 글

로깅(Logging)이란?  (0) 2020.07.20
Spring Security  (0) 2020.07.18
인터셉터(Interceptor)란?  (0) 2020.07.17
Spring MVC에서 Session 사용하기  (0) 2020.07.17
DispatcherServlet, MVC 설정  (0) 2020.07.14
    'Java/Spring' 카테고리의 다른 글
    • 로깅(Logging)이란?
    • Spring Security
    • 인터셉터(Interceptor)란?
    • Spring MVC에서 Session 사용하기
    길민호(ethan.mino)
    길민호(ethan.mino)
    💻 호기심 많은 서버 개발자 길민호입니다.

    티스토리툴바