@RestController
@RestController = @Controller + @ResponseBody. 등호 오른쪽에 있는 두 동지는 @RestController의 의미를 이해하기 위해 몇 문장을 간략하게 소개합니다.
@Controller 현재 수정된 클래스를 SpringBoot IOC 컨테이너. 해당 클래스가 위치한 프로젝트가 실행될 때 이 클래스가 인스턴스화됩니다. 물론 의미론적 효과도 있습니다. 이는 이 클래스가 Controller
@ResponseBody 역할을 한다는 것을 의미합니다. 간단히 말해서 해당 함수는 해당 메서드가 Map 또는 다른 메서드를 반환하는지 여부에 관계없이 이 클래스의 모든 API 인터페이스에서 반환된 데이터를 참조합니다. Object인 경우 Json 문자열 형식으로 클라이언트에 반환됩니다. 반환된 유형이 String이면 여전히 String입니다.
@RestController@RequestMapping("test")public class SampleController {
@GetMapping public Map testGet() {
return new HashMap
put("name", "springboot" );
}};
}
@GetMapping(path = "str")
public String testGetStr() { return "OK"; }}
코드의 이 부분은 Map String에 대한 JSON 문자열을 반환합니다. 여전히 String입니다
@RestController를 @Controller로 바꾼 후 /test의 반환 값은 다음과 같습니다.
오류 보고서에서 볼 수 있듯이 @Controller가 수정되면 Spring은 View(즉, , MVC C)가 중간에 있지만 반환되는 것은 Map입니다.
위 내용은 SpringBoot http에서 @RestController의 역할은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!