| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 깃
- Java
- 프레임워크
- Spring
- 자바
- git커스텀
- 깃커스텀
- macoracle
- github
- xml
- 스프링
- servlet
- springframework
- annotation
- di
- 인터페이스
- Sts
- IoCContainer
- 객체지향프로그래밍
- 아이텀2
- GIT
- Interface
- 스프링프레임워크
- 설정파일분리
- viewResolver
- 객체지향
- 깃허브
- oracle
- iterm2
- URLmapping
- Today
- Total
공부만이 살길
Annotation을 활용하여 URL mapping 하기 본문
지금까지는 각각의 컨트롤러를 따로따로 만들고, 각 ModelAndView를 통해 URL을 담아서 보내는 방법을 사용했었다.
하지만 Annotation을 사용하면 컨트롤러마다 하나하나 전부 따로 담아 보낼필요도 없이 중복되는 종류의
URL 매핑을 하나의 관리 컨트롤러 안에서 연결시켜줄 수 있다.
바로 확인해보도록 하자.

기존에는 indexController를 통해서 ModelAndView에 URL을 심고, return 하는 방식으로 사용했었다.
이러한 방법은 하나하나 컨트롤러의 역할을 수행하는 클래스들을 계속 만들어야하지만, Annotation을 사용하면 이를 간단하게 정리할 수 있다.

먼저 클래스의 네임은 한 컨트롤러의 이름이 아닌, 이를 통합하는 이름으로 지어준다.
home, notice 등으로 설정하고 이는 본인이 함께 모아놓을 컨트롤러들의 종합적 특징을 표현한 이름으로 설정해주는 것이 좋다.
class의 위쪽에 어노테이션 태그인 @Controller와, @RequestMapping 태그를 넣는다.
@RequestMapping옆의 ("/")는 아래에 매핑할 여러 URL들에 대한 공통 사항을 넣게된다.
밑 index 메소드의 @RequestMapping("index")를 예시로 들자면
URL 요청이 /index로 들어왔을 때, 해당 index 메소드에 해당하는 기능들이 수행되고,
/detail 의 요청이 들어오면 @ReuqestMapping("detail")의 메소드에 해당하는 기능들이 수행된다.
이러한 어노테이션 코드를 작성한 후에는, 우리가 @Component를 사용할 때와 동일하게
dispatcher-servlet 코드 ( 지금은 분리하여 servlet-context) xml 파일에

해당 패키지안의 @Component가 있는지를 스캔하고 생성할 수 있도록 하는 코드를 작성해주어야한다.
또한 @RequestMapping을 시행하게 하기 위해서는 Servlet-context에 해당 mapping을 찾아달라는 코드를 함께 입력해야한다.

URL mapping시 메소드의 이름은 크게 상관이없고
@RequestMapping("")의 매핑 네임에 따라 기능이 수행되지만,
어느정도 setter와 동일한 네임으로 지정해주는 것이 좋다.
'Spring framework' 카테고리의 다른 글
| 컨트롤러를 이용한 출력 방법 4가지 알아보기 ViewResolver, Tiles, @ResponseBody, Servlet 객체 활용 (0) | 2024.02.29 |
|---|---|
| Dispatcher-servlet.xml에 대해서 알아보기 [5] - 스프링 설정파일 분리 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [4] - DataSource를 활용한 DB 연결정보 분리 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [3] - Tiles 지시서를 통한 공통분모 집중화 (0) | 2024.02.22 |
| Dispatcher-servlet.xml에 대해서 알아보기 [2] - ViewResolver (0) | 2024.02.22 |