spring源码学习(一)

Spring作为一个IOC容器,今天我们学习它作为web解析的地方,学习下webmvc包的代码。
我们先看下web.xml

 

 

 

可以看到通过DispatcherServlet来实现页面的mapper处理。

DispatcherServlet->FrameworkServlet->HttpServletBean->HttpServlet

这是集成关系从HttpServletBean可以看出它是一个httpservlet ,

我们看下HttpServletBean的init方法

 

 

 

可以看到初始化方法在initServletBean中。我们继续看下FrameworkServlet中的initServletBean

 

 

 

 

 

 

我们看下DispatcherServlet的onRefresh

 

 

 

我们发现在这里进行了初始化,重点分析下initHandlerMappings方法

 

 

 

 

 

 

可以看到把所有的handlemapping都放到map中。

我们在看处理的地方

 

 

 

 

 

 

我们看下lookupHandlerMethod 这个方法

 

 

 

 

看到这里我也蒙圈了。这mappingRegistry玩意才是关键。

 

 

打开InitializingBean 发现这个接口的唯一方法是afterPropertiesSet。很显然spring又在构造方法埋点了。

 

 

可以看到根据url从handlerMap 得到处理的bean对应的method方法.

我们继续看下处理的地方

 

 

 

 

 

 

异步处理下。

posted @ 2019-05-29 13:14  manongyangjia  阅读(476)  评论(0编辑  收藏  举报