@RequestMapping的原理

1、@RequestMapping注解所配置的内容会被保存到 HandlerMapping(处理器映射器)中,然后等待客户端的访问

2.当拦截到请求时,DispatcherServlet会将拦截的请求的信息 与 HandlerMapping中保存的信息进行匹配,找到对应的处理器(处理器中包含控制器逻辑,处理器是对控制器的封装),然后HandlerMapping会将处理器和拦截器(拦截器可能不止一个,返回的是一个List)封装到HandlerExecutionChain对象中返回给DispatcherServlet

3、在执行控制器(Controller)方法之前,处理器(Handler)会对HTTP方法中的参数进行解析(如:参数注解@RequestParam绑定的参数,或者前端传递的是一个JSON),并将参数转换后传递给控制器(Controller)

4、前端的URL传入的参数可能是五花八门的(字符串、数组、JSON、XML、)
如果是简单是参数,SpringMVC提供了大量的参数转换的实现类(HttpMessageConverter接口),会自动调用实现转换。当然可以实现自己的转换器(通用的不能满足的情况),然后注册到注册机中,

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐