Spring
SpringMVC请求怎么拦截的
- DispartcherServlet拦截到用户请求
- doService();
- 给request请求设置一些参数
- doDispatch();
- 在handlerMapping中找到能处理这个请求的handler
- 根据这个handler获取hanlerAdapter,就是这个handler的执行器
- handlerAdapter调用handler方法
- hanler()会返回一个modleAndView对象
- 会执行目标方法,调用invokeHandlerMehod()方法
- invokeHandlerMehod()
- 进行参数解析
- 会进行数据绑定DataBinder
- 封装相应的对象
- invokeAndHandle:调用方法
- 调用getModleAndView()返回ModelAndView对象
- processDispatchResult()处理hanler返回的mv对象
- 如果需要会调用render方法渲染页面
SpringIOC容器初始化
-
创建Bean工厂,如果存在就销毁已经存在的,并加载bean的定义信息
ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();
-
给bean工厂设置一些属性和classloader,后置处理器
prepareBeanFactory(beanFactory);
-
调用bean工厂的后置处理器
invokeBeanFactoryPostProcessors(beanFactory);
-
注册bean的后置处理器
registerBeanPostProcessors(beanFactory);
-
注册监听器
registerListeners();
-
完成bean工厂的初始化并创建bean,finishBeanFactoryInitialization
-
getBean
-
doGetBean
-
CreateBean
-
doCreateBean
- 实例化bean:获取实例,获取实例的类
- 实例化bean
- 设置属性
- 调用前置处理器
- 调用init method
- 调用后置处理器
- 返回实例化化的对象
-
-
完成容器的刷新

浙公网安备 33010602011771号