- Spring对bean进行实例化
- Spring将值和bean的引用引入注入进bean对应的属性中
- 如果bean实现了beanNameAware接,Spring将bean的ID传递给set-BeanName()接口方法
- 如果bean实现了BeanFactorAware接口,Spring将调用setBeanFactory(),将beanFactory容器实例传入
- 如果bean实现了ApplicationContextAware接口,Spring将调用setApplicationContetxt,将应用上下文的引用传入
- 如果bean实现了BeanPostProcessor接口,Spring将调用postProcessBeforeInitalization
- 如果bean实现了InitializingBean接口,Spring将调用afterProessAfterInitialization()
- 如果bean实现了BeanPostProcess接口,Spring将调用postProcessAfterInitialization
- 此时此刻,Bean已经准备就绪,可以被使用了,他们讲一直保留在应用上下文中,直到该上下文被销毁。
- 如果bean实现了Disposeablebean接口,Spring将调用它的destory
SpringMV执行流程
- DispatcherServlet(前端控制器)。请求到达DispatcherServlet后,DispatcherServlet的任务就是将请求发送给SpringMVC控制器(HandleMapping),控制器就是一个应用于处理请求的Spring组件。DispatcherServlet会查询一个或者多个处理器映射来确定请求的下一站到哪里。处理器映射会根据请求所携带的URL信息来进行决策。
- 一旦选择了合适的控制器,DispatcherServlet会将请求发送给选中的控制器。达到了控制器,请求就会卸载(用户提交的信息),并且等待控制器处理这些信息
- 控制器完成逻辑处理后哦,通常会产生一些信息(在html显示的信息),这些信息称为MODEL、信息会发送给视图(JSP)
- 控制器最后做的一件事就是将model数据打包,并且标识出用于渲染输出的视图名称。它接下来会将请求连同model和视图的名称发送给DispatcherServlet。