Controller层注解详解
可根据右边目录快速浏览
@Controller
处理http请求,在对应的方法上视图解析器可以解析return中的jsp或html页面,并且跳转到相应页面
@RestController
在默认情况下,使用了 @RestController 注解即可将返回的数据结构转换成 Json 格式
@RestController注解相当于@ResponseBody + @Controller合在一起的作用(好吧我感觉我自己在讲废话,是本书上都这么写)
So想理解@RestController
我们就要点进去看一下该注解都包含了哪些东西。
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(
annotation = Controller.class
)
String value() default "";
}
可以看到 @RestController
注解包含了原来的 @Controller
和 @ResponseBody
注解,@ResponseBody
注解是将返回的数据结构转换为 Json 格式。所以在默认情况下,使用了 @RestController 注解即可将返回的数据结构转换成 Json 格式
@GetMapping
用于将HTTP GET请求映射到特定处理程序方法的注释。
里面最重要的就是这一句@RequestMapping(method = {RequestMethod.GET})
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.GET}
)
public @interface GetMapping {
@PostMapping
用于将HTTP POST请求映射到特定处理程序方法的注释。
里面最重要的就是这一句@RequestMapping(method = {RequestMethod.POST})可以看出@GetMapping和@PostMapping的区别并不大
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.POST}
)
public @interface PostMapping {
@RequestMapping
当你还在犹豫用@GetMapping还是@PostMapping时用他们爸爸(@RequestMapping)就对了
@PathVariable
只支持一个属性value,类型是为String,代表绑定的属性名称。默认不传递时,绑定为同名的形参。
@RequestBody
在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个
用来接收前端传递给后端的 JSON 字符串中的数据,但只能使用 POST 的方式提交数据
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步