ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
前后端交互时常用的注解总结如下。 [TOC] # 1. 用于映射地址的注解 **1. `org.springframework.web.bind.annotation.RequestMapping`** ```java //作用:映射请求地址 public @interface RequestMapping { //name、value、path作用相同,都是请求地址 String name() default ""; @AliasFor("path") String[] value() default {}; @AliasFor("value") String[] path() default {}; //请求方式 RequestMethod[] method() default {}; //前端传递过来的数据,有以下几种情况 // params = "username" 则请求地址必须携带username参数 // params = "!username" 则请求地址必须不能携带username参数 // params = "username=zhangsan" 则请求地址必须携带username=zhangsan的参数 // params = "username=!zhangsan" 则请求地址必须不能携带username=zhangsan的参数 String[] params() default {}; //请求头,有以下几种情况 // headers = "username" 则请求地址必须携带username参数 // headers = "!username" 则请求地址必须不能携带username参数 // headers = "username=zhangsan" 则请求地址必须携带username=zhangsan的参数 // headers = "username=!zhangsan" 则请求地址必须不能携带username=zhangsan的参数 String[] headers() default {}; //请求的数据类型 String[] consumes() default {}; //响应的数据类型 String[] produces() default {}; } ``` **2. `org.springframework.web.bind.annotation.DeleteMapping`** ```java //等价于@RequestMapping(method = {RequestMethod.DELETE}) @RequestMapping( method = {RequestMethod.DELETE} ) public @interface DeleteMapping { ... } ``` **3. `org.springframework.web.bind.annotation.GetMapping`** ```java //等价于@RequestMapping(method = {RequestMethod.GET}) @RequestMapping( method = {RequestMethod.GET} ) public @interface GetMapping{ ... } ``` **4. `org.springframework.web.bind.annotation.PostMapping`** ```java //等价于@RequestMapping(method = {RequestMethod.POST}) @RequestMapping( method = {RequestMethod.POST} ) public @interface PostMapping{ ... } ``` **5. `org.springframework.web.bind.annotation.PutMapping`** ```java //等价于@RequestMapping(method = {RequestMethod.PUT}) @RequestMapping( method = {RequestMethod.PUT} ) public @interface PutMapping{ ... } ``` <br/> # 2. 用于接收前端数据的注解 **1. `org.springframework.web.bind.annotation.RequestParam`** ```java public @interface RequestParam { //value、name作用相同,都是用来接收前端传递过来的数据 @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; //如果为true,则value指定的参数名必须传递 boolean required() default true; String defaultValue() default "\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n"; } ``` **2. `org.springframework.web.bind.annotation.RequestBody`** ```java //前端传递数据必须为json字符串 //只能用在请求方式为POST的方法中 public @interface RequestBody { //如果为true则前端必须传递响应的参数,但是好像没用,忽略即可 boolean required() default true; } ``` **3. `org.springframework.web.bind.annotation.PathVariable`** ```java //用于RESTful风格请求的url地址 public @interface PathVariable { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; } ``` **4. `org.springframework.web.bind.annotation.RequestPart `** ```java //用于请求数据类型为multipart/form-data的方法上 public @interface RequestPart { @AliasFor("name") String value() default ""; @AliasFor("value") String name() default ""; boolean required() default true; } ```