> 文档中心 > SpringBoot中Controller控制层重要注解

SpringBoot中Controller控制层重要注解

文章目录

  • 前言
    • 注解:Controller
    • 注解:RequestMapping("/")
    • 注解:ResponseBody
    • 注解:RestController、@GetMapping 和@PostMapping

前言

注解:Controller

Controller负责标识这个类是个Controller类,Spring检测到@Controller注解时,将其自动注册为Controller对象 ,是一种整体页面刷新提交的处理注解( 比如form提交 )。

@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。
在方法上加 @ResponseBody注解,也可以返回实体对象。

对应的还有一个 @RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。

注解:RequestMapping(“/”)

注解告知Spring这个类或者函数映射到哪个URL

@RequestMapping( path = { "/test" }, // 访问路径 params = { "name", "userId"}, //URL携带的参数 method = { RequestMethod.GET},  //表示请求方式 consumes = {"text/plain", "application/"},//指定处理请求的提交内容类型(Content-Type) produces = "text/plain",  //指定响应类型 headers = "content-type=text/"//指定request中必须包含某些指定的header值才能让该方法处理请求)

注意 :
1、@RequestMapping不指定参数名时,默认为path参数
2、path参数可以是个变量,通过{}来标识
3、@PathVaiable用于读取URL中的数据

@RequestMapping(path="test/login/{name}/{id}", method=RequestMethod.GET)public String login(@PathVariable("name") String strName, @PathVariable("id") Integer id){return strName +id.toString();}

@RequestParam用于读取URL中的数据

@RequestMapping(path = "test/login" , method=RequestMethod.GET)public String login(@RequestParam(value="name",required = false,defaultValue = "tom") String strName,@RequestParam(value="id",required = false,defaultValue = "123") Integer id){return strName + id.toString();}

注解:ResponseBody

正常情况下,Controller类中函数返回是一个模板对象(页面)。但是有时候我们希望返回值数值型(字符串或者Json格式数据),这时就需要添加@ResponseBody注解。

@ResponseBody注解可以添加到类或者函数上 。

注解:RestController、@GetMapping 和@PostMapping

这三个注解都是组合注解

@RestController = @Controller + @ResposeBody
@GetMapping相当于@RequestMapping(method=RequestMethod.GET) 表示前端向后端发出请求数据命令,后端根据具体请求(URL)找到对应的资源并返回给前端。

@PostMapping相当于@RequestMapping(method=RequestMethod.POST) 表示前端向后端发送数据,后端根据命令,将给数据持久化到数据库中,实现数据的更新。