当前位置: 首页 > 网络应用技术

Springboot中控制器的详细说明

时间:2023-03-05 16:44:32 网络应用技术

  本文将使用服务器作为起点,通过源代码,Web容器中的控制器在Handlermapping中注册。小路。

  让我们谈谈本文的一般思维和流程图:

  从dispatchservlet的继承系统中,查看servlet的初始化。

  httpservletbean中的init方法源代码

  可以从httpservletbean中的init方法中看到它。这里的核心是设置Servlet的一些Bean属性,并继续在子类Frameworkservlet中看到该方法以查看该方法。

  然后遵循dispatchservlet的方法。此方法将初始化派遣服务的九种策略。在这里,我们只关心该方法

  核心查看方法

  查看什么是默认处理器

  在这里,我们只关心此类别。此类是处理控制器上的请求图注释的类。

  请注意,在稍后处理请求时,您将选择最合适的处理程序从Handlermappings选择来处理请求

  httpservlet中的服务器方法源代码

  在这里,您可以记录服务处理请求的呼叫链

  从上面的继承图可以看出,请求mappingHandLermpapping实现了初始化接口,因此初始化时调用后propertiesset方法。

  然后查看父型的丙型培罗替特方法

  转换为requestMappingInfo的requestMapping

  此方法将将requestMapping转换为requestMappingInfo,将类的请求图转换为requestMappingInfo,然后将两个requestMappingInfo合并到(url合并)中。

  手工图注册

  查看输入requestMappingHandLermpapping的方法,该方法在parent类AbsTracThandLermpapping中实现。这是设计模式中的模板方法。

  这里是两种方法的核心,一种是获得处理器的方法,另一种是获得相应的拦截器链

  从上面的方法可以看到AbsTracthandLermet图的Gethandlerinternal方法,最后,在RequestMappingHandLermagping中详细说明了手工图,从映射Regregistry属性中取出的Mappingotistry。

  ApptracthandLermapping的GethandLereXecutionChain方法已获得了拦截器链和响应请求的相应方法。Next是呼叫方法。这是播放处理程序的轮流,如何获取获取requestMappingHandlerAdapter的方法

  返回到dispatchservlet dodispatch方法

  请求mappingHandlerAdapter类的句柄内部方法在这里,整个呼叫的过程在此处。在它们之后,在章节和其他章节和其他章节和其他章节之后,注册,获取和处理请求反思呼叫。