@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
发表回复