springMvc44-springMVC的三大组件

简介: springMvc44-springMVC的三大组件

image.png

处理器映射器:用户请求路径到Controller方法的映射

处理器适配器:根据handler(controlelr类)的开发方式(注解开发/其他开发) 方式的不同区寻找不同的处理器适配器

视图解析器:根据handler返回的view地址文件类型(jsp/pdf….)去寻找相应的视图解析器来进行解析

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

​​<!-- 注解形式的处理器映射器 打开源码发现已经过时 -->​​
​​<!-- <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean> -->​​
​​<!-- 注解形式的处理器适配器 打开源码发现已经过时-->​​
​​<!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean> -->​​
​​<!-- 配置最新版的注解的处理器映射器 -->​​
​​<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean> -->​​
​​<!-- 配置最新版的注解的处理器适配器 -->​​
​​<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean> ​​

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

​​<!-- 注解驱动:​​
​​作用:替我们自动配置最新版的注解的处理器映射器和处理器适配器​​
​​-->​​
​​<mvc:annotation-driven></mvc:annotation-driven>​​

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

​​<!-- 配置视图解析器 ​​
​​作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称​​
​​-->​​
​​<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">​​
​​<!-- 真正的页面路径 = 前缀 + 去掉后缀名的页面名称 + 后缀 -->​​
​​<!-- 前缀 -->​​
​​<property name="prefix" value="/WEB-INF/jsp/"></property>​​
​​<!-- 后缀 -->​​
​​<property name="suffix" value=".jsp"></property>​​
​​</bean>​​

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

​​<?xml version="1.0" encoding="UTF-8"?>​​
​​<beans xmlns="http://www.springframework.org/schema/beans"​​
​​xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ​​
​​xmlns:p="http://www.springframework.org/schema/p"​​
​​xmlns:context="http://www.springframework.org/schema/context"​​
​​xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" ​​
​​xmlns:mvc="http://www.springframework.org/schema/mvc"​​
​​xsi:schemaLocation="http://www.springframework.org/schema/beans ​​
​​http://www.springframework.org/schema/beans/spring-beans-4.0.xsd​​
​​http://www.springframework.org/schema/mvc ​​
​​http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd​​
​​http://code.alibabatech.com/schema/dubbo ​​
​​http://code.alibabatech.com/schema/dubbo/dubbo.xsd​​
​​http://www.springframework.org/schema/context ​​
​​http://www.springframework.org/schema/context/spring-context-4.0.xsd">​​
​​<!-- 配置@Controller注解扫描 -->​​
​​<context:component-scan base-package="cn.itheima.controller"></context:component-scan>​​
​​<!-- 注解驱动:​​
​​作用:替我们自动配置最新版的注解的处理器映射器和处理器适配器​​
​​-->​​
​​<mvc:annotation-driven></mvc:annotation-driven>​​
​​<!-- 配置视图解析器 ​​
​​作用:在controller中指定页面路径的时候就不用写页面的完整路径名称了,可以直接写页面去掉扩展名的名称​​
​​-->​​
​​<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">​​
​​<!-- 真正的页面路径 = 前缀 + 去掉后缀名的页面名称 + 后缀 -->​​
​​<!-- 前缀 -->​​
​​<property name="prefix" value="/WEB-INF/jsp/"></property>​​
​​<!-- 后缀 -->​​
​​<property name="suffix" value=".jsp"></property>​​
​​</bean>​​
​​</beans>​​

杂家不如专家,精益求精

相关文章
|
PHP 数据库 数据安全/隐私保护
|
存储 安全 固态存储
删除的文件还能回来吗?当然可以!教你如何恢复
误删文件不必慌,恢复机会仍存在!删除的文件常被标记而非立即清除,故在新数据覆盖前,文件恢复是可能的。SSD例外,因其TRIM功能即时擦除。恢复步骤:检查回收站,利用系统恢复功能,或专业软件如DiskGenius扫描硬盘。及时行动,避免数据覆盖至关重要。预防最佳:定期备份,谨慎操作,启用安全防护,确保数据安全无忧。记得,预防优于事后恢复!🚀✨ (239 characters)
删除的文件还能回来吗?当然可以!教你如何恢复
|
SQL 关系型数据库 MySQL
AnalyticDB MySQL
【8月更文挑战第30天】AnalyticDB MySQL
355 4
|
11月前
|
数据可视化 搜索推荐 数据挖掘
团队协作更高效!必备的多视图任务管理神器推荐
在团队协作中,多视图任务管理软件成为提升效率的关键工具。本文介绍多视图的优势,如灵活性、高效协作等,并对比了5款流行工具——板栗看板、Trello、ClickUp、Asana和Monday.com,帮助读者根据需求选择最合适的解决方案。
290 8
|
Prometheus 监控 Cloud Native
应用程序部署
应用程序部署
364 3
|
JavaScript 前端开发
vue ColorPicker 颜色选择器,传颜色值的问题
vue ColorPicker 颜色选择器,传颜色值的问题
273 0
|
Python
联合概率 边缘概率 条件概率 贝叶斯定理
联合概率 边缘概率 条件概率 贝叶斯定理
312 0
|
前端开发 JavaScript UED
element-ui 表格数据究竟隐藏着怎样的神秘样式与格式化技巧?快来揭开谜底!
【8月更文挑战第22天】《element-ui 表格数据样式及格式化案例》展示了如何利用 element-ui 的表格组件实现美观且易读的数据展示。通过简单配置,可以自定义表格样式,如边框、背景色等,并通过 formatter 实现数据格式化,例如将成绩保留一位小数。此外,还能依据条件设置行样式,如成绩达优则高亮显示,从而增强用户体验和数据可读性。
280 1
|
关系型数据库 MySQL 数据库
成功解决错误1130- Host xxx is not allowed to connect to this MySQL server
成功解决错误1130- Host xxx is not allowed to connect to this MySQL server