初探springMVC
2016-04-01 16:31
357 查看
1、springMVC简介
1)springMVC架构
Spring MVC是结构最清晰的MVCModel 2实现。它的Action不叫Action,而是称做Controller;Controller接收request,response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在使用中,
Controller返回值一般都只是一个
ViewName;Model则需要通过其它的途径(如request.attribute,Context参数,或Controller本身的属性数据)传递上去。
2)springMVC流程
3)springMVC核心组件
(1)prepareRefresh()
该方法所做的事情相对比较简单:记录容器启动的时间,并设置容器处于活跃状态
(2)、obtainFreshBeanFactory()
该方法的作用:创建BeanFactory实例,并解析Spring的xml配置文件。beanFactory的实现类是:ConfigurableListableBeanFactory。
(3)、prepareBeanFactory
创建好 BeanFactory 后,接着调用prepareBeanFactory方法,添加一些Spring本身需要的一些工具类
(4)、postProcessBeanFactory
方法是spring的一个扩展点之一,是一个空方法,留给子类去扩展。子类可以重写该方法,对已经构建的BeanFactory 的配置根据需要进行修改
(5)、invokeBeanFactoryPostProcessors
该方法的主要功能就是从spring配置文件中,获取实现BeanFactoryPostProcessor 接口的bean,然后按不同的优先级顺序,依次执行BeanFactoryPostProcessor的 postProcessBeanFactory 方法。
(6)、registerBeanPostProcessors
该方法的主要功能是:实例化并注册所有实现BeanPostProcessor接口的bean
(7)、initMessageSource
这个方法主要功能就是为spring容器初始化MessageSource,功能相对简单,如果spring配置文件没有定义messageSource,则使用默认的。
(8)、initApplicationEventMulticaster
这个方法的主要功能是为spring容器初始化ApplicationEventMulticaster,功能也相对简单,如果spring配置文件没有定义applicationEventMulticaster,则使用默认的
(9)、onRefresh该方法,默认是一个空的实现,留给子类去重写。
(10)、registerListeners 该方法的主要功能是注册实现ApplicationListener接口的bean。方法的具体实现如下
(11)、finishBeanFactoryInitialization
这个方法的主要功能是创建Bean 的实例对象以及构建Bean 实例对象之间的关联关系,该方法所做的事情,是spring的一个核心关键所在。
(12)、finishRefresh
该方法的作用是,发送一个ContextRefreshedEvent事件,通知相关的观察者
以上12个方法是springMVC的核心组件
4)SspringMVC-DispatchServlet
(1)Springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
(2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。
(3)DispatcherServlet请请求提交到目标Controller。
(4)Controller进行业务逻辑处理后,会返回一个ModelAndView。
(5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。
(6)视图对象负责渲染返回给客户端。
DispatcherServlet接受一个请求,然后解析完locales, themes等后,通过HadlerMapping解析控制器Controller去处理请求。
找到Controller后,出发当前controller的handleRequest()方法,此controller负责真正处理请求,然后一个ModelAndView实例。
DispatcherServlet 代理此Controller,接收返回结果,然后进行渲染。
1)springMVC架构
Spring MVC是结构最清晰的MVCModel 2实现。它的Action不叫Action,而是称做Controller;Controller接收request,response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在使用中,
Controller返回值一般都只是一个
ViewName;Model则需要通过其它的途径(如request.attribute,Context参数,或Controller本身的属性数据)传递上去。
2)springMVC流程
3)springMVC核心组件
(1)prepareRefresh()
该方法所做的事情相对比较简单:记录容器启动的时间,并设置容器处于活跃状态
(2)、obtainFreshBeanFactory()
该方法的作用:创建BeanFactory实例,并解析Spring的xml配置文件。beanFactory的实现类是:ConfigurableListableBeanFactory。
(3)、prepareBeanFactory
创建好 BeanFactory 后,接着调用prepareBeanFactory方法,添加一些Spring本身需要的一些工具类
(4)、postProcessBeanFactory
方法是spring的一个扩展点之一,是一个空方法,留给子类去扩展。子类可以重写该方法,对已经构建的BeanFactory 的配置根据需要进行修改
(5)、invokeBeanFactoryPostProcessors
该方法的主要功能就是从spring配置文件中,获取实现BeanFactoryPostProcessor 接口的bean,然后按不同的优先级顺序,依次执行BeanFactoryPostProcessor的 postProcessBeanFactory 方法。
(6)、registerBeanPostProcessors
该方法的主要功能是:实例化并注册所有实现BeanPostProcessor接口的bean
(7)、initMessageSource
这个方法主要功能就是为spring容器初始化MessageSource,功能相对简单,如果spring配置文件没有定义messageSource,则使用默认的。
(8)、initApplicationEventMulticaster
这个方法的主要功能是为spring容器初始化ApplicationEventMulticaster,功能也相对简单,如果spring配置文件没有定义applicationEventMulticaster,则使用默认的
(9)、onRefresh该方法,默认是一个空的实现,留给子类去重写。
(10)、registerListeners 该方法的主要功能是注册实现ApplicationListener接口的bean。方法的具体实现如下
(11)、finishBeanFactoryInitialization
这个方法的主要功能是创建Bean 的实例对象以及构建Bean 实例对象之间的关联关系,该方法所做的事情,是spring的一个核心关键所在。
(12)、finishRefresh
该方法的作用是,发送一个ContextRefreshedEvent事件,通知相关的观察者
以上12个方法是springMVC的核心组件
4)SspringMVC-DispatchServlet
(1)Springmvc请所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责负责对请求进行真正的处理工作。
(2)DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller。
(3)DispatcherServlet请请求提交到目标Controller。
(4)Controller进行业务逻辑处理后,会返回一个ModelAndView。
(5)Dispathcher查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象。
(6)视图对象负责渲染返回给客户端。
DispatcherServlet接受一个请求,然后解析完locales, themes等后,通过HadlerMapping解析控制器Controller去处理请求。
找到Controller后,出发当前controller的handleRequest()方法,此controller负责真正处理请求,然后一个ModelAndView实例。
DispatcherServlet 代理此Controller,接收返回结果,然后进行渲染。
相关文章推荐
- (转)见证spring jdbc
- Java单链表基本操作(九)--交换相邻节点对的值
- 解析spring的IOC、AOP?
- Spring构造器注入、set注入和注解注入
- 关于java.util.Properties读取中文乱码的正确解决方案(不要再用native2ascii.exe了)
- Spring 事务学习笔记(1):事务的基本知识
- Java: Replace a string from multiple replaced strings to multiple substitutes
- Java 插件 —— fckedit详细使用说明
- spring 模式
- Java —— MyEclipse 2014 破解图文详细教程
- 详解java装饰模式(Decorator Pattern)
- 初学者Java项目中各个包的含义
- struts2 小笔记
- Java单链表基本操作(八)--合并两个有序单链表
- [leetcode-329]Longest Increasing Path in a Matrix(java)
- Java集合源码之路-List分析(二)
- Java泛型 翻译泛型方法
- Java单例模式的写法
- action中调用Spring 注解 service 总是为空
- myeclipse内存不足问题