본문 바로가기
SI 업무/spring boot

@RequestMapping 과 @GetMapping 의 중복 /

by 새로운걸 배우는게 너무 싫은 IT 복붙러 2024. 12. 26.
728x90

 

http://localhost:8000/user/getAllUser

http://localhost:8000/user/getUser

http://localhost:8000/user/getDepart

http://localhost:8000/user/getOrder

 

위처럼 4개의 RESTFul 요청이 있으면

요청을 처리하는 Controller 파일에 4개의 메소드가 아래 처럼 존재 하고

 

각각 

@GetMapping("/user/getAllUser")

public List<User> getAllUser()

 

@GetMapping("/user/getUser")

public User getUser()

 

@GetMapping("/user/getDepart")

public Depart getDepart ()

 

@GetMapping("/user/getOrder")

public Depart getOrder ()

 

공통적으로 /user/ 를 계속 써야 해서

타이핑을 줄이기 위해

Controller 맨 상단에 @RequestMapping 을 넣는다.

@RestController
@RequestMapping("/user/")
public Controller 
{
	GetMapping("/getUser")
	public User getUser() {
    }
    
	@GetMapping("/getAllUser")
	public List<User> getAllUser() {
    }

	@GetMapping("/getDepart")
	public Depart getDepart () {
    }

	@GetMapping("/getOrder")
	public Order getOrder () {
    }

}

 

 

근데 말이다.

RequestMapping 과 GetMapping의 조합으로 url 을 만들면 아래처럼 / 가 2개 들어간다.

 

http://localhost:8000/user//getUser

 

그런데 실제 문제없이 처리는 된다.

이유가 멀까??

 

답: 

Spring MVC는 URL 매핑을 처리할 때 내부적으로 중복된 슬래시(//)를 하나의 슬래시(/)로 간주하여 처리합니다.

이는 URL 표준화 과정에서 자동으로 이루어지며, 추가적인 수정 없이도 정상적으로 매핑됩니다

728x90