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) 表示前端向后端发送数据,后端根据命令,将给数据持久化到数据库中,实现数据的更新。