深入剖析SpringMVC
- 其他
- 2025-08-30 04:45:01

一、Spring MVC 概述 1. 什么是 Spring MVC?
Spring MVC 是基于 Spring 框架的 Web 框架,它实现了 MVC 设计模式,将应用程序分为三个核心部分:
Model:封装应用程序的数据和业务逻辑。
View:负责渲染数据(通常是 HTML 页面)。
Controller:处理用户请求并协调 Model 和 View。
2. Spring MVC 的优势松耦合:通过清晰的职责分离,降低代码的耦合度。
灵活性:支持多种视图技术(如 JSP、Thymeleaf、FreeMarker 等)。
强大的数据绑定:自动将请求参数绑定到 Java 对象。
易于测试:Controller 是 POJO(Plain Old Java Object),易于单元测试。
与 Spring 生态无缝集成:可以轻松整合 Spring 的其他模块(如 Spring Security、Spring Data 等)。
二、Spring MVC 的核心组件 1. DispatcherServlet
DispatcherServlet 是 Spring MVC 的核心,负责接收所有的 HTTP 请求并将其分发给相应的 Controller。
2. HandlerMappingHandlerMapping 负责将请求映射到对应的 Controller。
3. ControllerController 是处理用户请求的核心组件,通常使用 @Controller 注解标记。
4. ModelAndViewModelAndView 是 Controller 返回的结果,包含模型数据(Model)和视图名称(View)。
5. ViewResolverViewResolver 负责根据视图名称解析实际的视图(如 JSP 页面)。
6. HandlerInterceptorHandlerInterceptor 用于在请求处理前后执行额外的逻辑(如权限检查、日志记录等)。
三、Spring MVC 的工作流程
关键阶段解析:
1. 请求分发DispatcherServlet 接收请求后,委托 HandlerMapping 查找匹配的控制器。
2. 参数处理HandlerAdapter 负责方法参数绑定(支持 @RequestParam、@RequestBody 等注解)。
3. 拦截器链HandlerInterceptor 在预处理、后处理、完成回掉三个阶段插入逻辑。
4. 视图渲染ViewResolver 根据逻辑视图名定位物理视图,View 对象将模型数据转换为响应内容。
四、Spring MVC 的配置 1. 基于 XML 的配置 1.1 在 web.xml 中配置 DispatcherServlet <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 1.2 在 spring-mvc-config.xml 中配置 Spring MVC <context:component-scan base-package="com.example.controller" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> 2. 基于 JavaConfig 的配置 2.1 在 web.xml 中配置 DispatcherServlet=================== 配置与 1.1 相同 ==================
2.2 使用 @Configuration 和 @EnableWebMvc 注解配置 Spring MVC
@Configuration @EnableWebMvc @ComponentScan("com.example.controller") public class WebConfig implements WebMvcConfigurer { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); return resolver; } } 五、Spring MVC 的核心注解 1. @Controller标记一个类为 Controller。
2. @RequestMapping将请求 URL 映射到 Controller 的方法。
3. @RequestParam将请求参数绑定到方法参数。
4. @ModelAttribute将请求参数绑定到模型对象。
5. @ResponseBody将方法返回值直接写入 HTTP 响应体。
6. @PathVariable将 URL 中的变量绑定到方法参数。
六、Spring MVC 的高级特性 1. 文件上传使用 MultipartFile 处理文件上传:
@RequestMapping(value = "/upload", method = RequestMethod.POST) public String handleFileUpload(@RequestParam("file") MultipartFile file) { // 处理文件 return "uploadSuccess"; } 2. 异常处理使用 @ExceptionHandler 处理异常:
@ExceptionHandler(UserNotFoundException.class) public String handleUserNotFound() { return "error/userNotFound"; }深入剖析SpringMVC由讯客互联其他栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“深入剖析SpringMVC”