配置阶段
-
配置web.xml
-
设定init-param
- 设置初始化参数的文件的加载路径contextconfigLoacation = classpath:application.xml
-
设定url-pattern
-
配置Annotation
- @Controller @Service @Autowried @RequestMapping...
初始化阶段
-
调用init()方法
-
IOC容器初始化
-
扫描相关的类
-
创建实例并保存到容器——IOC
-
进行DI操作——DI
-
初始化HandlerMapping——MVC
- 将一个Url和一个方法进行一对一的关联映射Map<String,Method>
运行阶段
-
调用doGet()/doPost()
- Web容器调用doGet/doPost方法,获得request/response对象
-
匹配HandlerMapping
- 从request对象中获得用户输入的url,找到对应的Method
-
反射调用method.invoker()
-
response.getWrite().write()
代码实现逻辑
- 1、加载配置文件
- 2、扫描相关的类
- 3、初始化IOC容器,初始化扫描到的类,并且加入IOC容器中
- 4、扫描加有注解的类,完成依赖注入
- 5、初始化HandlerMapping,将url对应的Method注入容器
- 6、执行service业务方法
相关技巧
- 将类名的首字母转小写方法
- 先将类名转char数组
- 再将第一个元素加32,也就是第一个字母,大小写字母的Ascii码相差32,大写字母Ascii码小于小写字母
相关文章: