SpringMVC的常用注解

SpringMVC的常用注解
1、@RestController

  • 作用是将返回的数据结构转换为JSON格式;@RestController=@Controller+@ResponseBody
  • 在SpringMVC中,@Controller主要负责处理前端控制器(DispatcherServlet )发过来的请求,经过业务逻辑层处理之后封装成一个model,并将其返回给view进行展示。@ResponseBody 注解是将返回的数据结构转换为 JSON 格式。
@RestController
@RequestMapping("/user")
public class SysUserController {
    @Autowired
    private SysUserService sysUserService;
    @GetMapping("/get")
    public JsonResult doSelectUser(SysUser sysUser){
        return new JsonResult(sysUserService.selectUsers(sysUser);     
    }

2、@RequestMapping

  • 主要是用来处理请求地址映射的注解,它可以用于类上,也可以用于方法上。用于类上的注解会将一个特定请求或者请求模式映射到一个控制器之上,表示类中的所有响应请求的方法都是以该地址作为父路径。而方法的级别上注解表示进一步指定到处理方法的映射关系。如上面代码在浏览器上直接访问 localhost:8080/user/get 即可。
  • 该注解有6个属性,一般在项目中比较常用的有三个属性:value、method 和 produces。
  1. value 属性:指定请求的实际地址,value 可以省略不写;
  2. method 属性:指定请求的类型,主要有 GET、PUT、POST、DELETE,默认为 GET。对应的注解分别为@GetMapping、@PutMapping、@PostMapping、@DeleteMapping。
  3. produces 属性:指定返回内容类型,如 produces = “application/json; charset=UTF-8”。
@RequestMapping(value = "/get",produces = "application/json; charset=UTF-8")
public JsonResult doSelectUser(SysUser sysUser){
    return new JsonResult(sysUserService.selectUsers(sysUser);     
}

3、@PathVariable

  • 主要用来获取 URL 参数。如果添加了@PathVariable注解,则方法的接收参数要求与URL的参数一致,否则无法接收。如果添加value属性,则value的值要与URL的参数一致;
@GetMapping("{ids}/{valid}")
    public JsonResult doValidById(@PathVariable(value="ids") Integer id,
                                  @PathVariable Integer valid){
        return new JsonResult(sysUserService.validById(id,valid));
    }

4、@RequestParam

  • 作用是将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)。
语法:@RequestParam(value=”参数名”,required=true/false,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
public String getDetails(
    @RequestParam(value="param1", required=true) String param1,
    @RequestParam(value="param2", required=false) String param2){
...
}

5、@RequestBody

  • 作用:主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据,Get方式提交时无请求体)。
  • 与@RequestParam的区别:在同一个方法中@RequestBody只能有一个,而@RequestParam可以有多个;
  • 同时使用@RequestParam()和@RequestBody:
    @RequestParam( )指定的参数可以是普通元素、数组、集合、对象等等。 (即: @RequestBody 与@RequestParam()可以同时使用时,原SpringMVC接收参数的机制不变,只不过RequestBody 接收的是请求体里面的数据(get是默认的请求体,post是提交表单需要的请求体);而RequestParam接收的是key-value里面的参数,所以它会被切面进行处理从而可以用普通元素、数组、集合、对象等接收)。
@PutMapping
    public JsonResult doUpdateUser(@RequestBody SysUser sysUser){
        return new JsonResult(sysUserService.updateUser(sysUser));
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值