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 부분은 아래처럼 변경하면 됨