3.16 @RestController注解
3.16 @RestController注解
用途
org.springframework.web.bind.annotation.RestController
注解本身使用@Controller
和@ResponseBody
注解。使用了@RestController
注解的类会被看作一个Controller
,并且该类中所有使用@RequestMapping
注解的方法都默认使用了@ResponseBody
注解。
源码
@RestController
注解的源代码如下:
1 | @Target(ElementType.TYPE) |
示例 @RestController注解的使用
创建一个RestControllerTest
项目,所有文件和配置基本和3.14节的ResponseBodyTest
项目一致。
项目结构
展开/折叠
G:\Desktop\随书源码\Spring+Mybatis企业应用实战(第2版)\codes\03\RestControllerTest ├─src\ │ └─org\ │ └─fkit\ │ ├─controller\ │ │ └─BookController.java │ └─domain\ │ └─Book.java └─WebContent\ ├─index.jsp ├─js\ │ ├─jquery-1.11.0.min.js │ ├─jquery-migrate-1.2.1.min.js │ └─json2.js ├─META-INF\ │ └─MANIFEST.MF └─WEB-INF\ ├─lib\ │ ├─commons-logging-1.2.jar │ ├─jackson-annotations-2.9.2.jar │ ├─jackson-core-2.9.2.jar │ ├─jackson-databind-2.9.2.jar │ ├─spring-aop-5.0.1.RELEASE.jar │ ├─spring-aspects-5.0.1.RELEASE.jar │ ├─spring-beans-5.0.1.RELEASE.jar │ ├─spring-context-5.0.1.RELEASE.jar │ ├─spring-context-indexer-5.0.1.RELEASE.jar │ ├─spring-context-support-5.0.1.RELEASE.jar │ ├─spring-core-5.0.1.RELEASE.jar │ ├─spring-expression-5.0.1.RELEASE.jar │ ├─spring-instrument-5.0.1.RELEASE.jar │ ├─spring-jcl-5.0.1.RELEASE.jar │ ├─spring-jdbc-5.0.1.RELEASE.jar │ ├─spring-jms-5.0.1.RELEASE.jar │ ├─spring-messaging-5.0.1.RELEASE.jar │ ├─spring-orm-5.0.1.RELEASE.jar │ ├─spring-oxm-5.0.1.RELEASE.jar │ ├─spring-test-5.0.1.RELEASE.jar │ ├─spring-tx-5.0.1.RELEASE.jar │ ├─spring-web-5.0.1.RELEASE.jar │ ├─spring-webflux-5.0.1.RELEASE.jar │ ├─spring-webmvc-5.0.1.RELEASE.jar │ └─spring-websocket-5.0.1.RELEASE.jar ├─springmvc-config.xml └─web.xml
BookController.java
1 | package org.fkit.controller; |
BookController
使用了@RestController
注解,该类会被看成一个Controller
,同时该类中所有使用@RequestMapping
注解的方法都默认使用了@ResponseBody
注解, getJson
方法会将List
集合数据转换成JOSN
格式并返回客户端.
测试结果和ResponseBodyTest
项目的测试结果一致,此处不再赘述。