@RestController
默认情况下,@RestController
会将返回的对象数据转换为JSON
格式
@RestController
public class HelloController{
@RequestMapping("/user")
public User getUser(){
User user = new User();
user.setUsername("zhangsan");
user.setPassword("123");
return user;
}
}
路由映射
@RequestMapping
注解主要负责URL的路由映射。它可以添加在Controller
类或者具体的方法上。- 如果添加在
Controller
类上,则这个Controller
中的所有路由映射都将会加上此映射规则,如果添加在方法上,则只对当前方法生效。 @RequestMapping
注解包含很多属性参数来定义HTTP
的请求映射规则。常用的属性参数如下:value
:请求URL
的路径,支持URL
模板、正则表达式method
:HTTP
请求方法consumes
:请求的媒体类型(Content-Type),如application/json
produces
:响应的媒体类型params,headers
:请求的参数及请求头的值
@RequestMapping
的value
属性用于匹配URL
映射,value
支持简单表达式@RequestMapping("/user")
@RequestMapping
支持使用通配符匹配URL
,用于统一映射某些URL
规则类似的请求:@RequestMapping("/getJson/*.json")
,当在浏览器中请求/getJson/a.json
或者/getJson/b.json
时都会匹配到后台的Json
方法@RequestMapping
的通配符匹配非常简单实用,支持"*" "?" "**"
等通配符- 符号
"*"
匹配任意字符,符号"**"
匹配任意路径,符号"?"
匹配单个字符 - 有通配符的优先级低于没有通配符的
- 有
"**"
通配符的优先级低于有"*"
通配符的
Method匹配
HTTP
请求Method
有GET、POST、PUT、DELETE
等方式。HTTP
支持的全部Method
@RequestMapping
注解提供了method
参数指定请求的Method
类型,包括RequestMethod.GET、RequestMethod.POST、RequestMethod.DELETE、RequestMethod.PUT
等值,分别对应HTTP
请求的Method
@RequestMapping(value = "/getData", method = RequestMethod.GET) public String getData(){ return "hello"; }
Method
匹配也可以使用@GetMapping、@PostMapping
等注解代替
参数传递
@RequestParam
将请求参数绑定到控制器的方法参数上,接收的参数来自HTTP
请求体或请求url
的QueryString
,当请求的参数名称与Controller
的业务方法参数名称一致时,@RequestParam
可以省略@PathVaraible
:用来处理动态的URL
,URL
的值可以作为控制器中处理方法的参数@RequestBody
接收的参数是来自requestBody
中,即请求体。一般用于处理非Conten-Type:application/x-www-form-urlencoded
编码格式的数据,比如:`application/json`、`application/xml` 等类型的数据