Spring Boot中的注解
实际开发过程中Spring Boot常用的注解有以下几个
-
@RestController
-
@RequestMapping
-
@PathVariable
-
@RequestParam
-
@RequestBody
@RestController 是spring boot新增的一个注解,这是注解是很多注解的集合,点开之后发现:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(annotation = Controller.class)
String value() default "";
}
它是@ResponseBody(该注解是将返回的数据结构转换为 JSON 格式)和@Controller的结合,@RestController和@Controller的区别就是 Controller一般返回的是页面,而RestController是将数据以JSON格式返回给前端(前后端分离的项目中)
@RequestMapping是处理请求地址的映射,可用于类或者方法上,会将地址的请求映射到控制器或者方法中。
@RestController
@RequestMapping("/request")
public class Request {
//指定get方式的地址映射
//如果url参数和方法中的参数不一致需要在@PathVariable(value = "参数名" request = true(表示参数必须传))
@GetMapping("/user/{id}/{name}")
/*@PathVariable 用来获取 URL 参数 PathVariable是这种形式-> /user/123 */
public String testPathVariable(@PathVariable Integer id, @PathVariable String name) {
System.out.println("获取到的id为:" + id);
System.out.println("获取到的name为:" + name);
return "success";
}
@GetMapping("/user")
//RequestParam和PathVariable都是获取url中的参数,但有区别RequestParam这种形式 -> /user?id=123
public String testRequestParam(@RequestParam Integer id){
System.out.println("获取到的id为:"+id);
return "success";
}
@PostMapping("/form1")
public String testForm(@RequestParam String username, @RequestParam String password) {
System.out.println("获取到的username为:" + username);
System.out.println("获取到的password为:" + password);
return "success";
}
//当参数很多的时候,就需要创建一个实体类来封装这些参数
@PostMapping("/body")
public JsonResult testBody(@RequestBody User user){
System.out.println("获取到的id"+user.getId());
System.out.println("获取到的username"+user.getUsername());
System.out.println("获取到的password"+user.getPassword());
return new JsonResult();
}
}