@Controller
在Spring中曾经应用很久了,@RestController
是在Spring 4.0呈现的,它是@Controller
和@ResponseBody
两个注解的联合。
@Controller
经典的Spring controller类会应用@Controller
注解标注。被@Controller
标注的类为@Component
类,并且能够被主动扫描发现。@Controller
注解个别会和@RequestMapping
注解一起应用。
@Controller@RequestMapping("books")public class SimpleBookController { @GetMapping("/{id}", produces = "application/json") public @ResponseBody Book getBook(@PathVariable int id) { return findBookById(id); } private Book findBookById(int id) { // ... }}
@RespondBody注解:将办法返回值主动转换为HttpResponse对象。
@RestController
@RestController
简化了controller类的实现,它是@Controller
和@RespondBody
的联合。
@RestController@RequestMapping("books-rest")public class SimpleBookRestController { @GetMapping("/{id}", produces = "application/json") public Book getBook(@PathVariable int id) { return findBookById(id); } private Book findBookById(int id) { // ... }}
应用了@RestController
,@RespondBody
就不再须要了。
The Spring @Controller and @RestController Annotations