根据 doc,
@RestController
只是一个组合了 @Controller 和 @ResponseBody 的便捷注释,@GetMapping
是一个组合注释,充当 @RequestMapping(method = RequestMethod.GET) 的快捷方式,这意味着 @GetMapping
应该与 @RestController
和 @Controller
都能很好地配合使用
事实上
@GetMapping
仅适用于 @RestController
。
@RestController
public class HelloController {
@GetMapping("/")
public String hello(){
return "hello";
}
}
同时
@Controller
public class HelloController {
@GetMapping("/")
public String hello(){
return "hello";
}
}
不起作用。
我知道我可以使用
@RequestMapping(value = "/", method = RequestMethod.GET)
代替,我只是想知道为什么。有人可以提供线索吗?
@Controller
public class TestController {
@GetMapping("/")
@ResponseBody
public String hello() {
return "hello";
}
}
添加@ResponceBody注解即可。