深入理解@RequestBody注解

2022-11-03,,

我写文章历来追求通俗易懂,今天来深入探讨一下@RequestBody注解。提起这个,所有做过mvc开发的同学应该都不陌生,使用上面肯定也是信手拈来。

所以我这里就简单的提一下这个注解的使用:

1、当客户端的HTTP请求参数contentType设置为:application/json

2、服务端的处理接口参数使用:@RequestBody注解,就会把客户参数当成一个javaBean进行耦合字段赋值,简单的说就是,把客户的json对象转换为javaBean对象

好了,现在真正进入今天的主题!我们来探究一下@RequestBody注解在后台中是如何工作的呢?这个后来就是指的spring框架。先给出注解的引用包:org.springframework.web.bind.annotation.RequestBody;很明显就是属于spring框架。所以在这里,我要给大家一个提示。在spring框架的世界里面,我们一定要把的spring框架当成一个整体来看,切记切记!!!所有springframework子包里面的类都是有联系的。

ok又回到我们的主题上,在spring的世界里面,有一个最基本的东西就是拦截器。客户的每一个HTTP请求过来的时候,都会经过它的层层把控。由于平实的开发中,除非特别的功能需求我们会单独设置拦截器。其它时候都没有去注意它。但是恰恰就是我们的忽视,让我们漏掉了很多知识点。

总体的来说,在spring中,拦截器分为两大类:

一、框架自身的拦截器

二、开发者自定义的拦截器

话不多说,直接给出答案!@RequestBody注解就是spring框架自身的拦截器在起左右,当请求过来的时候,框架会检查被请求的controller方法接口中的注解,根据注解类型,调用不同的AOP处理程序进行处理。当然这里的AOP也是spring框架底层自身造已经定义好的,所以不需要我们再进行单独设置。例如这里的@RequestBody注解调用的AOP处理程序,先是通过JoinPoint获取该注解位置的参数,然后进行上面的数据耦合。看到了吧,实际上处理很简单,最主要的就是这个框架自带的AOP。

文章的结尾,我再简单提一下注解的作用,大家记住:注解是一个特殊的类,它可以给对象、参数、方法添加额外的这个类信息。说白了就是添加了更多的信息,我们可以称注解信息为元信息。我们通过java的运行时公共方法可以获取这些信息。所以,注解只有当你定义了专门的注解处理程序的时候才有用,否则一无是处!今天的文章依旧很短,但是我们希望大家可以通过这个知识点,自行开拓思路。我只是一个引路人,知识需要自己进行消化!

深入理解@RequestBody注解的相关教程结束。

《深入理解@RequestBody注解.doc》

下载本文的Word格式文档,以方便收藏与打印。