springMvc44-springMVC的三大组件

本文详细介绍了SpringMvc框架的结构,包括处理器映射器、处理器适配器和视图解析器的作用。强调了在核心配置文件中正确配置这些组件的重要性,以避免使用过时的类和提高效率。通过注解驱动可以自动配置最新的处理器映射器和适配器,并提供了配置视图解析器的示例,以简化页面路径引用。最后,给出了完整的SpringMvc核心配置文件示例。
摘要由CSDN通过智能技术生成

SpringMvc框架结构图
这里写图片描述

  • 处理器映射器:用户请求路径到Controller方法的映射
  • 处理器适配器:根据handler(controlelr类)的开发方式(注解开发/其他开发) 方式的不同区寻找不同的处理器适配器
  • 视图解析器:根据handler返回的view地址文件类型(jsp/pdf….)去寻找相应的视图解析器来进行解析

    SpringMvc框架配置要点1:应该在SpirngMvc的核心配置文件中配置处理器映射器和处理器适配器,否则SpringMvc就会去/org/springframework/web/servlet/DispatcherServlet.properties这个文件中去依次去找处理器映射器和处理器适配器,这样每一次的请求都会去依次判断,这样的效率会很慢的。

 
  1. <!-- 注解形式的处理器映射器 打开源码发现已经过时 -->

  2. <!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> -->

  3. <!-- 注解形式的处理器适配器 打开源码发现已经过时-->

  4. <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean> -->

  5. <!-- 配置最新版的注解的处理器映射器 -->

  6. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> -->

  7. <!-- 配置最新版的注解的处理器适配器 -->

  8. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

但是上面的配置最新版的注解处理器映射器和处理器适配器仍然不好,如果官方后续版本升级后续仍然会升级方法,这个类仍然或有可能过时,此时在项目中再修改就有些麻烦,此时我们可以只需要配置一个注解驱动就行了

 
  1. <!-- 注解驱动:

  2. 作用:替我们自动配置最新版的注解的处理器映射器和处理器适配器

  3. -->

  4. <mvc:annotation-driven></mvc:annotation-driven>

SpringMvc配置视图解析器可配可不配

 
  1. <!-- 配置视图解析器

  2. 作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称

  3. -->

  4. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  5. <!-- 真正的页面路径 = 前缀 + 去掉后缀名的页面名称 + 后缀 -->

  6. <!-- 前缀 -->

  7. <property name="prefix" value="/WEB-INF/jsp/"></property>

  8. <!-- 后缀 -->

  9. <property name="suffix" value=".jsp"></property>

  10. </bean>

下面给出完整的SpringMvc的核心配置文件

 
  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <beans xmlns="http://www.springframework.org/schema/beans"

  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  4. xmlns:p="http://www.springframework.org/schema/p"

  5. xmlns:context="http://www.springframework.org/schema/context"

  6. xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

  7. xmlns:mvc="http://www.springframework.org/schema/mvc"

  8. xsi:schemaLocation="http://www.springframework.org/schema/beans

  9. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd

  10. http://www.springframework.org/schema/mvc

  11. http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd

  12. http://code.alibabatech.com/schema/dubbo

  13. http://code.alibabatech.com/schema/dubbo/dubbo.xsd

  14. http://www.springframework.org/schema/context

  15. http://www.springframework.org/schema/context/spring-context-4.0.xsd">

  16. <!-- 配置@Controller注解扫描 -->

  17. <context:component-scan base-package="cn.itheima.controller"></context:component-scan>

  18. <!-- 注解驱动:

  19. 作用:替我们自动配置最新版的注解的处理器映射器和处理器适配器

  20. -->

  21. <mvc:annotation-driven></mvc:annotation-driven>

  22. <!-- 配置视图解析器

  23. 作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称

  24. -->

  25. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

  26. <!-- 真正的页面路径 = 前缀 + 去掉后缀名的页面名称 + 后缀 -->

  27. <!-- 前缀 -->

  28. <property name="prefix" value="/WEB-INF/jsp/"></property>

  29. <!-- 后缀 -->

  30. <property name="suffix" value=".jsp"></property>

  31. </bean>

  32. </beans>

杂家不如专家,精益求精

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值