重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.( 四 )


  • 前端控制器:对其他组件进行解耦,这样就增加了组件的可扩展性 无需开发直接配置
  • 处理器映射器:无需开发,直接用,作用见上面
  • 处理器适配器:无需开发,
  • 处理器:需要开发,方式很多
  • 视图解析器:无需开发
  • 视图:需要开发
就这么点东西,真正需要写的就两个(处理器+视图)和一个配置(前端控制器),就是mvc中的三个重点,在第二小节中就是这样编写的,第三小结就是解释其中的原理 。
处理器映射器、处理器适配器、视图解析器这三个是默认配置的,在下面位置中可以查看
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
DispatchServlet.properties
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
BeanNameUrlHandlerMapping:映射器
4.1、非注解的处理器映射器和处理器适配器[看看即可]BeanNameUrlHandlerMapping:映射器
在springmvc配置文件中,配置BeanNameUrlHandlerMapping
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
他的作用是找到在springmvc.xml中配置的url和处理器的bean
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
HttpRequestHandlerAdapter:适配执行实现了HttpRequestHandler接口的处理类的方法
在springmvc配置文件中,配置HttpRequestHandlerAdapter
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
它的作用就是适配实现了HttpRequestHandler接口的处理类,也就是找到该处理类对应的方法
如何适配,就是需要看源码了,可以百度一下讲解该适配器的源码 。
SimpleControllerHandlerAdapter:适配执行实现了Controller接口的处理类的方法
在springmvc配置文件中,配置
SimpleControllerHandlerAdapter
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
总结:这就是非注解的组件的配置方式,很简单,注意
  • 处理器映射器和处理器适配器可以配置多个
  • 处理器映射器和处理器适配器可以混用
4.2、配置注解的处理器映射器和适配器(掌握)
  • org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping 是在spring3.1之前使用的注解映射器
  • org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping是在spring3.1之后使用的注解映射器
  • org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 是在spring3.1之前使用的注解适配器
  • org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter是在spring3.1之后使用的注解配置器
注意:
1、注解方式的映射器和适配器在3.1版本前后是不一样的,使用3.1之后的
2、注解方式的处理器映射器和处理器适配器必须配对使用,不能与非注解的处理器映射器和适配器混用(用了注解的就不能在配置非注解的,二选一)
配置方式有两种:
1、使用bean标签配置
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
2、使用mvc标签(推荐)
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
4.3、视图解析器4.3.1、JSP视图解析器(默认的就是使用该解析器)
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
其中两个配置的意思是:prefix:前缀 suffix:后缀。配置之后在指定视图时,就不用写这前缀和后缀了,直接写关键代码即可 。看下图
重学SpringMVC:框架原理解读 + 简单入门程序+组件分析.

文章插图
 
虽然指定视图只写 items/itemsList 但是会帮我们加上我们配置的前缀和后缀,也就是变为了
/WEB-INF/jsp/items/itemsList.jsp
4.3.2 Freemarker视图解析器


推荐阅读