HelloWorldController.java
@RestController public class HelloWorldController { @GetMapping("") public String helloWorld(){ return "Hello, world"; } }
위 코드는 localhost:8080 을 통해 자원을 가져오는 GET method를 이용하여 "Hello, world"를 반환한다.
@RestController?
@Controller @ResponseBody public @interface RestController { ... }
@Controller와 @ResponseBody 어노테이션을 합친 어노테이션
@GetMapping
@RequestMapping(method = RequestMethod.GET) public @interface GetMapping { ... }
@RequestMapping의 method를 GET으로 설정한 어노테이션
REST의 method별로 하나씩 있다. (@PostMapping, @PutMapping, @DeleteMapping... )
사용법
@RestController // localhost:8080/get 으로 시작하는 요청을 Mapping @RequestMapping(value = "/get") public class GetController { // @PathVariable 이용 @GetMapping("/{name}") public String getByPathVariable(@PathVariable String name){ return name; } //@RequestParam 이용 @GetMapping("/query-param") public String getByRequestParam(@RequestParam String name, @RequestParam String email, @RequestParam int id){ return name + " " + email + " " + id; } //(key,value) map 이용 @GetMapping("/query-param-map") public String getByRequestParamUsingMap(@RequestParam Map<String,String> queryParamMap){ queryParamMap.forEach((key, value) -> { System.out.println(key); System.out.println(value); }); return ""; } // dto 객체 이용 @GetMapping("/query-param-dto") public String getByRequestParamUsingDto(UserRequest userRequest){ System.out.println(userRequest.toString()); return userRequest.toString(); } }
//예시
@GetMapping("/{requestVariable}")
public String getByPathVariable(@PathVariable(value = "requestVariable") String name){
...
}
//query-param의 key 이름으로 value 설정
@GetMapping("/query-param")
public String getByRequestParam(@RequestParam(value = "name") String userName)
...
}
- 이건 뭐지?
@ResponseBody
@RequestMapping
dto 객체 이용 시 @RequestParam 사용하지 않아도 mapping되는 과정