[Spring Boot] Request Mapping
@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