zoukankan      html  css  js  c++  java
  • Spring MVC 详解(二)

    前端控制器

    web.xml中配置:

    springmvc.xml中配置springmvc架构三大组件(处理器映射器、适配器、视图解析器)

    处理器映射器

    springmvc.xml中配置:

    BeanNameUrlHandlerMapping: 根据请求urlXXXX.action)匹配spring容器bean的 name

    找到对应的bean(程序编写的Handler

     

    <!-- 根据beanname进行查找Handler actionurl配置在beanname中 -->

     

    <bean

     

    class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />

     

    所有处理器映射器都实现HandlerMapping接口。

    处理器适配器

    springmvc.xml配置:

    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

    所有的适配器都是实现了HandlerAdapter接口。

    程序编写Handler根据适配器的要求编写。

    SimpleControllerHandlerAdapter适配器要求:

    通过supports方法知道Handler必须要实现哪个接口:

     

     Handler编写

    需要实现Controller接口:

     配置Handler

    springmvc.xml配置Handlerspring管理Handler

     配置视图解析器

     

    配置视图解析,能够解析jsp视图:

     

     

    注解映射器和适配器

    注解映射器

    spring3.1之前默认加载映射器是

    org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping,

    3.1之后要使用:

    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping

     

    springmvc.xml中配置RequestMappingHandlerMapping:

     

    使用RequestMappingHandlerMapping需要在Handler 中使用@controller标识此类是一个控制器,使用@requestMapping指定Handler方法所对应的url

     注解适配器

    spring3.1之前默认加载映射器是

    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter,

    3.1之后要使用:

    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter

    RequestMappingHandlerAdapter,不要求Handler实现任何接口,它需要和RequestMappingHandlerMapping注解映射器配对使用,主要解析Handler方法中的形参。

     

    注解开发Hanlder

    配置Handler

    建议使用组件扫描,组件扫描可以扫描@Controller@Service@component@Repsitory

    小结

    DispatcherServlet:前端控制器,相当于中央调度器,可以降低组件之间的耦合度。

    HandlerMapping:处理器映射器,负责根据url查找Handler

    HandlerAdapter:处理器适配器,负责根据适配器要求的规则去执行处理器。可以通过扩展适配器支持不同类型的Handler

    viewResolver:视图解析器,根据逻辑视图名解析成真正的视图,

    真正视图地址==前缀+逻辑视图名+后缀

     

  • 相关阅读:
    spring框架学习笔记(七)
    spring框架学习笔记(六)
    spring框架学习笔记(五)
    spring框架学习笔记(四)
    spring框架学习笔记(三)
    leetcode 147. Insertion Sort List ----- java
    leetcode 146. LRU Cache ----- java
    leetcode 145. Binary Tree Postorder Traversal ----- java
    leetcode 144. Binary Tree Preorder Traversal ----- java
    leetcode 143. Reorder List ----- java
  • 原文地址:https://www.cnblogs.com/yuanfuqiang/p/5823773.html
Copyright © 2011-2022 走看看