news 2026/6/15 18:51:45

springMvc 快速体验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springMvc 快速体验

SpringMVC处理请求流程


SpringMVC涉及组件理解:

  1. DispatcherServlet : SpringMVC提供,我们需要使用web.xml配置使其生效,它是整个流程处理的核心,所有请求都经过它的处理和分发![ CEO ]
  2. HandlerMapping : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效,它内部缓存handler(controller方法)和handler访问路径数据,被DispatcherServlet调用,用于查找路径对应的handler![秘书]
  3. HandlerAdapter : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效,它可以处理请求参数和处理响应数据数据,每次DispatcherServlet都是通过handlerAdapter间接调用handler,他是handler和DispatcherServlet之间的适配器![经理]
  4. Handler : handler又称处理器,他是Controller类内部的方法简称,是由我们自己定义,用来接收参数,向后调用业务,最终返回响应结果![打工人]
  5. ViewResovler : SpringMVC提供,我们需要进行IoC配置使其加入IoC容器方可生效!视图解析器主要作用简化模版视图页面查找的,但是需要注意,前后端分离项目,后端只返回JSON数据,不返回页面,那就不需要视图解析器!所以,视图解析器,相对其他的组件不是必须的![财务]


用到了 tomcat


用到了 JBLJavaToWeb

运行效果



pom.xml

<?xml version="1.0" encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.cool</groupId><artifactId>ssm-springmvc-part</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><modules><module>springmvc-base-quick</module><module>springmvc-study-one</module></modules><properties><spring.version>6.0.6</spring.version><servlet.api>9.1.0</servlet.api><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><!-- springwebmvc web - servlet ioc - spring-context mvc - spring-webmvc --><dependencies><!-- springioc相关依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><!-- web相关依赖 --><!-- 在 pom.xml 中引入 Jakarta EE Web API 的依赖 --><!-- 在 Spring Web MVC 6 中,Servlet API 迁移到了 Jakarta EE API,因此在配置 DispatcherServlet 时需要使用 Jakarta EE 提供的相应类库和命名空间。错误信息 “‘org.springframework.web.servlet.DispatcherServlet’ is not assignable to ‘javax.servlet.Servlet,jakarta.servlet.Servlet’” 表明你使用了旧版本的 Servlet API,没有更新到 Jakarta EE 规范。 --><dependency><groupId>jakarta.platform</groupId><artifactId>jakarta.jakartaee-web-api</artifactId><version>${servlet.api}</version><scope>provided</scope></dependency><!-- springwebmvc相关依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><!-- lombok插件: 可以使用 @Data 给 实体类自动添加setter、getter、toString方法 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><!-- post请求,接收json格式的参数,的时候 会报一个 415的错误,因为,java原生api识别不了json,只支持 param、path参数 解决办法: 这个依赖 + 在配置类上使用@EnableWebMvc(给springmvc的handlerAdpater配置json转化器) --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.0</version></dependency></dependencies></project>

HelloController

packagecom.cool.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.ResponseBody;@ControllerpublicclassHelloController{@RequestMapping("springmvc/hello")// 对外访问的地址【到handlerMapping注册的注解】@ResponseBody// 直接返回字符串给前端,不要找视图解析器publicStringhello(){System.out.println("HelloController.hello");// 返回给前端return"hello springmvc!";}}

MvcConfig

packagecom.cool.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.ComponentScan;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;importorg.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;/** * 要做2件事情 * 1、controller 配置ioc容器 * 2、hanglerMapping、handlerAdapter 加入到ioc容器 */@Configuration@ComponentScan("com.cool.controller")publicclassMvcConfig{@BeanpublicRequestMappingHandlerMappinghandlerMapping(){returnnewRequestMappingHandlerMapping();}@BeanpublicRequestMappingHandlerAdapterhandlerAdapter(){returnnewRequestMappingHandlerAdapter();}}

SpringMvcInit 需要继承 AbstractAnnotationConfigDispatcherServletInitializer

packagecom.cool.config;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;/** * 可以被web项目加载,会初始化ioc容器,会设置dispatcherServlet的地址 */publicclassSpringMvcInitextendsAbstractAnnotationConfigDispatcherServletInitializer{@OverrideprotectedClass<?>[]getRootConfigClasses(){returnnewClass[0];}// 设置我们项目对应的配置@OverrideprotectedClass<?>[]getServletConfigClasses(){returnnewClass[]{MvcConfig.class};}// 配置springmvc内部自带servlet的访问地址@OverrideprotectedString[]getServletMappings(){returnnewString[]{"/"};}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:24:45

sourcefare项目实战 - 集成soular,使用soular用户统一认证登录

sourcefare 是一款开源免费的代码扫描工具&#xff0c;支持免费私有化部署&#xff0c;轻量、简洁易用。本文将详细介绍如何安装sourcefaresoular&#xff0c;实现统一认证登录。 1、soular 安装 1.1 安装 本文以CentOS操作系统为例。 下载&#xff0c;CentOS安装包下载地址…

作者头像 李华
网站建设 2026/6/15 12:16:51

项目管理没那么复杂,抓住目标、路径、偏差就够了

很多企业一聊项目管理&#xff0c;第一反应就是&#xff1a;“是不是要上方法论&#xff1f;”“是不是要画甘特图、WBS、里程碑&#xff1f;”结果往往是&#xff1a;表格越做越多会议越开越勤项目经理天天在催老板依然问一句话&#xff1a;这个项目现在到底怎么样了&#xff…

作者头像 李华
网站建设 2026/6/15 18:34:07

摆脱局域网束缚!VibeVoice+cpolar 解锁音频创作全场景自由

VibeVoice 是一款专注于长对话场景的文本转语音工具&#xff0c;最核心的能力是支持 4 个角色同时发声&#xff0c;每个角色有专属声线&#xff0c;还能根据文本内容自动匹配喜怒哀乐的情绪&#xff0c;生成的语音自然不机械&#xff0c;同时能输出长达 90 分钟的连续音频&…

作者头像 李华
网站建设 2026/6/15 12:09:41

别把 Cursor 只当代码补全工具!这样做,让 AI 真正读懂你的项目架构

在 AI 代码协作时代&#xff0c;Cursor 不再只是一个“AI 代码补全工具”&#xff0c;它更像是一个可被“配置”与“驱动”的智能开发引擎。如果你想让 Cursor 真正成为你团队的“项目开发助理”&#xff0c;你需要做两件事&#xff1a; 把项目的关键知识&#xff08;架构、设计…

作者头像 李华