티스토리 뷰

Spring은 어떻게 매개변수만 적으면 라우팅을 해주는걸까

Spring의 라우팅은 URI가 서버의 특정 리소스에 직접 연결된 기존 웹 애플리케이션과 상당히 다릅니다.

대신 Spring은 들어오는 웹 요청을 처리하는 방법을 결정하기 위해 컨트롤러, 메소드 및 주석 시스템을 사용합니다.

Understanding Controllers and Request Mapping

Spring에서 컨트롤러는 들어오는 웹 요청을 처리하는 클래스입니다.
클래스에 @Controller 주석을 추가하여 컨트롤러로 지정됩니다.

이러한 컨트롤러 클래스 내에서 다양한 유형의 요청을 처리하기 위한 메서드가 정의됩니다.
이러한 메서드는 @RequestMapping 주석을 사용하여 특정 URL 또는 URL 패턴에 매핑됩니다.

예를 들면 다음과 같습니다.

@Controller public class HomeController {      @RequestMapping("/home")     public String home() {         return "home";     } } 

이 예제에서 /home URL에 대한 GET 요청이 생성되면 Spring은 해당 요청을 HomeController 클래스의 home 메서드로 라우팅합니다.

경로 변수 및 쿼리 매개변수

URL의 일부 또는 특정 쿼리 매개변수를 기반으로 요청을 라우팅하려는 경우가 있습니다.
Spring에서는 경로 변수와 쿼리 매개변수를 사용하여 이를 수행할 수 있습니다.

경로 변수는 변수인 URL의 일부입니다.
예를 들어 URL /user/123에서 123은 사용자의 ID를 나타내는 경로 변수입니다.
Spring에서는 @PathVariable 주석을 사용하여 경로 변수를 매핑할 수 있습니다.

@Controller public class UserController {      @RequestMapping("/user/{userId}")     public String getUser(@PathVariable String userId) {         // get user based on userId         return "user";     } } 

검색어 매개변수는 URL에서 ‘?’ 뒤에 제공되는 추가 매개변수입니다.
예를 들어 URL /search?query=spring에서 query는 쿼리 매개변수입니다.
Spring에서는 @RequestParam 주석을 사용하여 쿼리 매개변수를 매핑할 수 있습니다.

@Controller public class SearchController {      @RequestMapping("/search")     public String search(@RequestParam String query) {         // perform search based on query         return "searchResults";     } } 

부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>

728x90

'DEV > Java' 카테고리의 다른 글

Spring MVC의 Redirect와 Forward  (2) 2023.05.19
DispatcherServlet  (0) 2023.05.19
Spring MVC @ModelAttribute  (0) 2023.05.19
Servlet filter  (0) 2023.05.19
Expression Language(EL)  (0) 2023.05.19