@Controller & @RestController
Posted 藿香正气
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Controller & @RestController相关的知识,希望对你有一定的参考价值。
@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
以上是关于@Controller & @RestController的主要内容,如果未能解决你的问题,请参考以下文章
Yii 框架:Controller/Action url & 参数
Rails 方法返回当前的“controller#action”?
后端SpringMVC Controller(接口定义 & 注解开发)