news 2026/6/3 11:14:11

springboot 整合 springMvc(包含springmvc的拦截器的使用)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
springboot 整合 springMvc(包含springmvc的拦截器的使用)

文章目录

    • 项目目录
    • pom.xml
    • Main 程序入口
    • 配置文件application.yml
      • 自定义外部资源文件夹的路径
    • resources / static / login.html
    • resources / webapp/ register.html
    • 拦截器
    • springMvc配置文件 WebMvcConfig .java
    • controller

项目目录

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><!-- 所有springboot项目,都必须继承自 spring-boot-starter-parent --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.0.5</version></parent><groupId>com.atguigu</groupId><artifactId>boot-mvc</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- SpringBoot提供了许多预定义的Starter,如: spring-boot-starter-web用于构建Web应用程序, spring-boot-starter-data-jpa用于使用JPA进行数据库访问, spring-boot-starter-security用于安全认证和授权, ...等等 使用Starter非常简单,只需要在项目的构建文件(例如Maven的pom.xml)中添加所需的Starter依赖, SpringBoot会自动处理依赖管理和配置。 springboot提供的全部启动器地址: [https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters](https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters) springboot启动器的命名规范: 官方提供的:命名为:`spring-boot-starter-*` 第三方提供:命名为:`*-spring-boot-starter` --><!--web开发的场景启动器--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency></dependencies></project>

Main 程序入口

packagecom.atguigu;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublicclassMainApplication{publicstaticvoidmain(String[]args){SpringApplication.run(MainApplication.class,args);}}

配置文件application.yml

自定义外部资源文件夹的路径

# springMvc相关的配置server:port:80# 端口号,默认是8080servlet:context-path:/boot# 设置项目根路径spring:web:resources:# 这是默认值# static-locations: classpath:/META-INF/resources/, classpath:/resources/, classpath:/static/, classpath:/public/static-locations:classpath:/webapp# 自定义外部资源文件夹的路径# 一旦自定义外部资源文件夹路径,就覆盖掉默认路径了# 访问外部资源的时候,不要写外部资源文件夹的名字哦。。。

resources / static / login.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>登录界面</title></head><body>登录界面</body></html>

resources / webapp/ register.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>注册Title</title></head><body>注册界面</body></html>

拦截器

packagecom.atguigu.interceptor;importjakarta.servlet.http.HttpServletRequest;importjakarta.servlet.http.HttpServletResponse;importorg.springframework.web.servlet.HandlerInterceptor;publicclassMyInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{System.out.println("request = "+request+"response = "+response+"handler = "+handler);returntrue;}}

springMvc配置文件 WebMvcConfig .java

  • springboot 项目中,你 springmvc 的功能,就像之前一样用就行了

  • 加上 @Configuration注解

  • 只要在MainApplication.java类所在包及其子包下,就会被@SpringBootApplication注解扫描注册

packagecom.atguigu.config;importcom.atguigu.interceptor.MyInterceptor;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.InterceptorRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;/** * springboot项目中,你springmvc的功能就像之前一样用就行了 * * 加上 @Configuration注解 * * 只要在 MainApplication.java类 所在包及其子包下,就会被@SpringBootApplication注解扫描注册 */@ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{@OverridepublicvoidaddInterceptors(InterceptorRegistryregistry){registry.addInterceptor(newMyInterceptor());}}

controller

packagecom.atguigu.controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("hello")publicclassHelloController{@GetMapping("show")publicStringshow(){return"hello - show";}}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/3 11:54:16

赶deadline必备! 降AI率软件 千笔·专业降AI率智能体 VS 云笔AI

在AI技术快速发展的今天&#xff0c;越来越多的学生开始借助AI工具辅助完成论文写作&#xff0c;以提高效率、优化内容结构。然而&#xff0c;随着各大查重系统对AI生成内容的识别能力不断提升&#xff0c;如何降低AI率、避免重复率超标&#xff0c;成为了毕业论文写作中的一大…

作者头像 李华
网站建设 2026/5/29 19:59:57

电商购物车场景下文档型数据管理的迁移实践

金仓数据库替代MongoDB&#xff1a;电商购物车场景下文档型数据管理的高效、经济、可信迁移实践 在电商系统架构持续演进过程中&#xff0c;购物车作为用户行为密度最高、读写频率最密集的核心业务模块之一&#xff0c;长期采用MongoDB等文档型数据库承载其高度动态、非结构化…

作者头像 李华
网站建设 2026/5/29 18:28:24

从零实现富文本编辑器#11-Immutable状态维护与增量渲染

在先前我们讨论了视图层的适配器设计&#xff0c;主要是全量的视图初始化渲染&#xff0c;包括生命周期同步、状态管理、渲染模式、DOM映射状态等。在这里我们需要处理变更的增量更新&#xff0c;这属于性能方面的考量&#xff0c;需要考虑如何实现不可变的状态对象&#xff0c…

作者头像 李华
网站建设 2026/5/31 21:43:21

新手必看!PHP 入门知识大集合,一文带你上手

新手必看&#xff01;PHP 入门知识大集合&#xff0c;一文带你上手 PHP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛用于 Web 开发的服务器端脚本语言。以下是一些 PHP 入门知识&#xff1a; \1. PHP 基础语法 标记风格 PHP 代码可以使用多种标记风格嵌入到 …

作者头像 李华
网站建设 2026/5/19 8:54:05

住宅小区充电桩远程监控管理系统方案

目前&#xff0c;随着新能源汽车的用户不断增长&#xff0c;住宅小区内充电桩这类基础设施的建设日益增多。与商业场所充电桩相比&#xff0c;小区充电桩因分布零散、使用时间集中、电力负荷波动大、居民使用需求多样等特点&#xff0c;面临着日常运维不便、安全隐患难及时发现…

作者头像 李华
网站建设 2026/5/24 22:18:36

2026PMP考试练习100题(答案解析)

1一个项目因外部商业影响而启动。在项目进行过程中&#xff0c;项目开始时考虑的一些商业参数发生了变化。项目经理该怎么做?A、通知工作组不要接受任何变更&#xff0c;因为这涉及重大返工B、请求管理层相应地更新项目需求C、要求只更新新的需求&#xff0c;因为其他变更涉及…

作者头像 李华