Annotation URL 매핑

Codren·2021년 8월 24일
1
post-custom-banner

Section 1. Annotation URL 매핑

1. 기존 Controller

  • 기존에 존재하던 IndexController




2. @Controller Annotation 지정

  • 기존의 IndexController 객체는 Controller 인터페이스를 implement 했기 때문에 자동으로 Controller import 불가 (제거해야 가능)




3. @RequestMapping Annotation

  • RequestMapping Annotation 이용하여 메서드에 url 매핑 설정을 지정함




4. annotation-driven 태그

  • 사용자의 요청에 맞는 컨트롤러를 매핑하기 위한 xml 내의 태그
  • 설정된 RequestMapping 정보를 탐색 및 연결




5. @RequestMapping View 페이지 요청

  • View 페이지에 대한 정보를 직접 제공하지 않으면 매칭된 url 을 기반으로 View 페이지 자동 요청
  • "/index" url 요청 전송 -> 타일즈 Resolver 탐색 -> 기본 Resolver 탐색 (prefix/suffix)




6. 정리된 xml 파일

  • Annotation 으로 객체 생성 및 DI 를 수행하고 url 매핑 또한 내부 메서드로 수행하므로 관련 코드 제거됨



Section 2. Controller 정리

1. 메서드를 통한 URL 매핑

  • 전에는 url 매핑이 클래스 자체를 통해서 이루어졌지만 이제 클래스 내부의 메서드를 통해 매핑 (여러개의 메서드로 여러 매핑을 설정할 수 있음)
  • Controller 클래스를 하나의 메서드 컨테이너(폴더) 느낌으로 생성하고 그 안에 메서드를 통해 url 매핑




2. Notice 관련 Controller 정리

  • URL 매핑을 수행했던 공지사항 관련 컨트롤러들을 제거
  • 하나의 NoticeController 클래스 메서드로 url 매핑을 구현
// View 페이지에 대한 정보를 넘기기 위해서 String 타입으로 반환
// 아래와 같은 코드 역할을 수행한다고 생각하면 됨

ModelAndView mv = new ModelAndView("root.index"); 
return mv;




3. 중복된 URL 부분

  • "/customer/notice" 부분은 중복되는 부분이므로 해당 컨트롤러 내의 url 매핑은 모두 "/customer/notice/" 로 시작되는 것으로 지정 가능
  • root 부분은 아래처럼 변경하면 됨
post-custom-banner

0개의 댓글