공부만이 살길

Annotation을 활용하여 URL mapping 하기 본문

Spring framework

Annotation을 활용하여 URL mapping 하기

공부만이 살길이야 2024. 2. 29. 14:48
반응형
SMALL

지금까지는 각각의 컨트롤러를 따로따로 만들고, 각 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와 동일한 네임으로 지정해주는 것이 좋다.

반응형
LIST