Spring常用注解

主程序注解,spring框架的main函数自带注解。一般不需要开发人员操作,Spring Initializer会写好。

@Controller

标注控制器类,控制器中的方法可以返回一个视图,在Web开发中一般使用的少(主要是用@RestController)。

@ResponseBody

@Controller+@ResponseBody=@RestController

因为SpringBoot已经封装了@RestController,所以一般不需要使用上面等式左边的方式(好比茴字的四种写法),我个人认为不需要花时间学习。

@RequestBody

@PostMapping中会再次介绍。将json解析为java对象。

使用场景:json传参

@RequestMapping

@RequestMapping(“url“),用来将请求映射到方法。

在实际开发中,在具体的控制器类之前添加该注解即可。

@RequestParam

用来获取url中?后的参数。

public void searchById(@RequestParam(value ="id", required true, defaultValue "0")int id){
// required, defaultValue不写也可以
...
}

使用场景:URL传参

@PathVariable

同样是从URL中获得参数,方式和@RequestParam不一样。

@RequestMapping("/user/{id}")
public void searchById(@PathVariable(required true)int id){
...
}

使用场景:URL传参

@RestController

作用=@Controller+@ResponseBody,返回json格式数据。现在Web开发中的Controller一般都是RestController。

一般和@RequestMapping、@GetMapping、@PostMapping配合使用。

使用方法:

@RequestController
public class RestController {
...
}
@GetMapping

响应GET请求。

@RequestController
@RequestMapping("rest")
public class RestController {
 @GetMapping("get") // :8080/rest/get
 public String get(){
   return "";
}
}

@GetMapping可以使用@PathVariable、@RequestParam

@PostMapping

响应POST请求。

@RequestController
@RequestMapping("rest")
public class RestController {
 @PostMapping("post") // :8080/rest/post
 public String post(@RequestBody User user){
   return "";
}
}

一般来说,POST方法的传参不受限制,可以使用URL传参,也可以使用@RequestBody获取请求体中的json,并解析为响应的java对象。

POST方法和GET方法可以共用一个URL,不用担心起冲突,即下面的使用方式是OK的:

@RequestController
@RequestMapping("rest")
public class RestController {
 @GetMapping
 public String get(){
   return "";
}
 @PostMapping
 public String post(@RequestBody User user){
   return user.toString();
}
}
// 不会冲突,只要请求方法正确(正确使用GET、POST),就能被正确的方法响应。

@PutMapping、@DeleteMapping使用方式大同小异,其实从功能上来说,@PostMapping能替代所有的请求,但是这么使用会导致代码语义混乱

简单说明一下各种请求方法的使用场景:

方法 场景
GET   获取资源  
POST   新增资源  
PUT   更新资源  
DELETE   删除资源  
@CrossOrigin

用来解决跨域问题,何为跨域移步这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydzpg.html