SpringBoot学习碎片之Controller

本文讲述了如何在SpringMVC中使用@RestController进行URL路由映射,支持多种HTTP方法,并探讨了RequestParam、PathVariable和RequestBody在参数传递中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@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模板、正则表达式
    • methodHTTP请求方法
    • consumes:请求的媒体类型(Content-Type),如application/json
    • produces:响应的媒体类型
    • params,headers:请求的参数及请求头的值
  • @RequestMappingvalue属性用于匹配URL映射,value支持简单表达式@RequestMapping("/user")
  • @RequestMapping支持使用通配符匹配URL,用于统一映射某些URL规则类似的请求:@RequestMapping("/getJson/*.json"),当在浏览器中请求/getJson/a.json或者/getJson/b.json时都会匹配到后台的Json方法
  • @RequestMapping的通配符匹配非常简单实用,支持 "*" "?" "**" 等通配符
  • 符号 "*" 匹配任意字符,符号 "**" 匹配任意路径,符号 "?" 匹配单个字符
  • 有通配符的优先级低于没有通配符的
  • "**" 通配符的优先级低于有 "*" 通配符的

Method匹配

  • HTTP请求MethodGET、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请求体或请求urlQueryString,当请求的参数名称与Controller的业务方法参数名称一致时,@RequestParam可以省略
  • @PathVaraible:用来处理动态的URLURL的值可以作为控制器中处理方法的参数
  • @RequestBody接收的参数是来自requestBody中,即请求体。一般用于处理非Conten-Type:application/x-www-form-urlencoded编码格式的数据,比如:`application/json`、`application/xml` 等类型的数据
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值