spring mvc 手写MVC原理分析流程图(二)

手写SpringMVC框架流程图


手写SpringMVC原理解析

1:自定义servlet实现HttpServlet

2:在init()方法中,获取Spring上下文信息。(即巧妙又**哈哈)

3:调用loadApiFromSpringBeans方法。通过IOC容器获取Bean的名称数组

4:还是通过applicationContext去根据名称获取类型。

5:循环方法,找到自定义的注解,进行参数解析,封装到调用类

6:构建Configration类(Freemarke中的类)

7:真正调用的时候走doGet和doPost方法,如果是put和delete方法根本就不支持(严重缺陷)

8:两个方法同时调用doHandler方法

9:通过req取得路径当做K找到注解中的映射路径

10:然后通过buildPrams去构建参数封装Object数组返回(将参数一一对应的封装通过反射去判断类型。然后如果是普通的类型)

11:通过convert方法将参数类型进行转换包装,然后并没有找到对byte类型和文件类型的数据包装(瞬间就可以翻车)

12:run方法通过反射调用执行目标方法。(姿势很帅)

13:通过processResult(result, resp);构建FreemarkeView(所谓的自定义试图引擎。其实就是Freemark哈哈。。。)。

14:总结手写MVC就是将Spring和Servlet各用一半进行拼装。(牛逼。。。。)

你可能感兴趣的:(spring mvc 手写MVC原理分析流程图(二))