개발/Spring

[Spring Boot] Request Mapping

조각선생 2022. 2. 3. 19:11

@Controller와 @RestController

spring boot에서 클래스 위에 @Controller 또는 @RestController를 붙일 수 있습니다.

@Controller는 html과 같은 view를 응답할 때 사용하고, @RestController는 문자열,json,xml 등의 data를 응답할 때 사용합니다.

 

@Controller의 예시 코드입니다.

@Controller
public class HelloController {

    @RequestMapping(value = "/")
    public String hello(){
        return "hello";
    }
}

return "hello"; 라고 되어 있는데, 이는 hello.html을 반환하고 싶다는 의미이고 spring boot application의 src>main>resources>templates 아래에 hello.html 파일을 넣어주었을 경우, 제대로 동작할 수 있습니다.

 

@RestController의 예시 코드입니다.

@RestController
public class HelloController {

    @RequestMapping(value = "/")
    public String hello(){
        return "hello";
    }
}

위의 코드와 똑같은데, @Controller 대신 @RestController를 사용하였습니다. 이 경우에는 "hello"라는 문자열을 반환합니다.

 

query string (@RequestParam)

query string을 받기 위해서는 @RequestParam을 사용합니다.

@RequestMapping(value = "/post")
    public String getPost(@RequestParam(name = "category") String category,
                          @RequestParam(name = "id") Integer id){
        return "You requested " + category + " - " + id;
    }

 

@RequestMapping(value = "/post")
    public String getPost(@RequestParam(required = false, defaultValue = "it") String category,
                          @RequestParam Integer id){
        return "You requested " + category + " - " + id;
    }

@RequestParam 옵션으로 name, required, defaultValue가 있습니다. name은 query String의 이름을 의미하는데, 함수 내에서 사용할 파라미터와 같은 이름을 사용한다면 생략할 수 있습니다. required는 필수 파라미터인지를 true false로 표시할 수 있고, defaultValue는 필수 파라미터가 아닐 시 해당 파라미터를 보내지 않았을 때 디폴트로 적용되는 값을 지정해줄 수 있습니다.

 

path param (@PathVariable)

path param을 받기 위해서는 @PathVariable을 사용합니다.

@RequestMapping(value = "/user/{type}/id/{id}")
    public String getPost(@PathVariable(name = "type") String type,
                          @PathVariable(name = "id") Integer id){
        return "You requested " + category + " - " + id;
    }

HTTP method를 위한 RequestMapping

🧑‍💻

이 글은 코드프레소 웹 개발 체험단 활동을 하며 작성한 글 입니다.

코드프레소 이러닝 강의 [Spring Boot 웹 개발 기초] 수강 후 정리하였습니다.

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr