본문 바로가기
IT/Spring

[Spring] - 스프링 @RestController, @RequestBody, @ResponseBody 사용법(@Controller vs @RestController 차이, @RequestParam vs @RequestBody 차이)

by 차이나는 개발자 2022. 6. 28.
728x90
반응형

#스프링 @RestController, @RequestBody, @ResponseBody 사용법(@Controller vs @RestController 차이, @RequestParam vs @RequestBody 차이)

 

 

#@Restcontroller(하단의 @Controller + @RequestBody 와 같은 결과를 나타냅니다.) 

-Restuful 웹서비스의 컨트롤러입니다.

-HTTP Response Body 생성합니다.

-문자열과 JSON을 반환할 수 있습니다.

@RequestMapping("/restControllerTest")
@RestController
public class RestControllerTest {

	@GetMapping("/test1")
	public String getTest1(){
		return "Hello restControllerTest";
	}
	
}

 

 

#@Controller(상단의 @Restcontroller와 같은 결과를 나타냅니다.)

-Spring MVC의 컨트롤러입니다.

-View를 반환하기 위해 사용합니다.

@RequestMapping("/controllerTest")
@Controller
public class ControllerTest {

	@GetMapping("/test1")
	@ResponseBody
	public String getTest1(){
		return "Hello controllerTest";
	}
	
}

 

 

#@RequestBody

-@RequestBody가 붙은 파라미터에는 HTTP 요청의 본문(body)이 그대로 전달됩니다.

 

 

#@ResponseBody

-자바 객체를 HTTP 요청의 body 내용으로 매핑하는 역할

-@Responsebody 어노테이션을 사용하면 HTTP 응답데이터(body)에 자바 객체가 매핑되어 전달됩니다..

@RequestMapping("/responseBodyTest")
@Controller
public class ResponseBodyTest {

	@ResponseBody
	@GetMapping("/test1")
	public String getTest1() {
		return "Hello";
	}

	// 쿼리 스트링으로 name 값 전달 받음
	@ResponseBody
	@GetMapping("/test2")
	public String getTest2(@RequestParam String name) {
		return "Hello " + name;
	}

	// http body로 name 값 전달 받음
	@ResponseBody
	@GetMapping("/test3")
	public String getTest3(@RequestBody String name) {
		return "Hello " + name;
	}

}

 

 

 

728x90
반응형

댓글