2026年物业门控五金耗材推荐榜:中企创联工业品,小区/写字楼/物业多场景门控配件全覆盖
2026/3/1 13:31:04
SpringMVC涉及组件理解:
<?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>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!";}}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();}}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[]{"/"};}}