Programming/Spring | Spring-Boot

[Spring] @RequestMapping

seandoesdev 2023. 9. 14. 14:15

1. RequestMapping

url 요쳥(request)를  Controller에 있는 메소드와 맵핑하기 위해 사용하는 어노테이션

 

1.1 예시

@RequsetMapping이 어떻게 사용되는지 예시로 살펴보자

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainController{
	
    @RequestMapping(value="/login", method=RequestMethod.GET)
    public String login(...) {
    	...
    }
    
    @RequestMapping(value="/login", method=RequestMethod.POST)
    public String login2(...) {
    	...
    }
    
    @RequestMapping(value="/login*", method=RequestMethod.POST)
    public String login3(...) {
    	...
    }
    
    @RequestMapping(value="/login/*", method=RequestMethod.POST)
    public String login4(...) {
    	...
    }
    
    @RequestMapping(value="/login/*/user", method=RequestMethod.POST)
    public String login5(...) {
    	...
    }
    
    @RequestMapping(value="/login**", method=RequestMethod.POST)
    public String login2(...) {
    	...
    }
    
    @RequestMapping(value="/login/**", method=RequestMethod.POST)
    public String login2(...) {
    	...
    }
}

 

 

1.2 중복되는 형태의 요청맵핑값

/member/login과 /member/ logout은 동일하게 /mebmer가 존재한다. 지금은 단순히 짧아서 아무렇지 않지만 더 긴 값을 갖는 경우라면 매번 입력해줘야 하는 번거로움이 발생한다. 

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MemberController{
	
    @RequestMapping(value="/member/login")
    public String login(...) {
    	...
    }
    
    @RequestMapping(value="/member/logout")
    public String logout(...) {
    	...
    }
    
}

 

그래서 아래와 같이 클래스에 RequestMapping("/member")으로 해결해줄 수 있다.

@Controller
@RequestMapping("/member")
public class MemberController{

    @RequestMapping(value="/login")
    public String login(...){
    	...
    }

    @RequestMapping(value="/logout")
    public String logout(...){
    	...
    }

}