【SpringBoot3】整合SpringMVC

文章目录


一、实现过程

springboot-part - GitHub

1.1 创建程序

模块:springboot-base-springmvc-03

1.2 引入依赖

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.0.5</version>
    </parent>
    <groupId>com.wake</groupId>
    <artifactId>springboot-base-springmvc-03</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

</project>

1.3 启动类

java 复制代码
@SpringBootConfiguration
public class Main {
    public static void main(String[] args) {
        SpringApplication.run(Main.class,args);
    }
}

1.4 Controller

java 复制代码
@Controller
@ResponseBody
public class HelloController {
    @GetMapping("show")
    public String show(){
        return "Hello SpringBoot! MVC!";
    }
}

二、web相关配置

yml 复制代码
#相关的Web配置
server:
  servlet:
    context-path: /boot #设置项目根路径
  port: 80 #默认是8080
  • 测试

Spring Boot Web应用程序配置 参数 - 官方文档

当涉及Spring Boot的Web应用程序配置时,以下是五个重要的配置参数:

  1. server.port: 指定应用程序的HTTP服务器端口号。默认情况下,Spring Boot使用8080作为默认端口。您可以通过在配置文件中设置server.port来更改端口号。
  2. server.servlet.context-path: 设置应用程序的上下文路径。这是应用程序在URL中的基本路径。默认情况下,上下文路径为空。您可以通过在配置文件中设置server.servlet.context-path属性来指定自定义的上下文路径。
  3. spring.mvc.view.prefixspring.mvc.view.suffix: 这两个属性用于配置视图解析器的前缀和后缀。视图解析器用于解析控制器返回的视图名称,并将其映射到实际的视图页面。spring.mvc.view.prefix定义视图的前缀,spring.mvc.view.suffix定义视图的后缀。
  4. spring.resources.static-locations: 配置静态资源的位置。静态资源可以是CSS、JavaScript、图像等。默认情况下,Spring Boot会将静态资源放在classpath:/static目录下。您可以通过在配置文件中设置spring.resources.static-locations属性来自定义静态资源的位置。
  5. spring.http.encoding.charsetspring.http.encoding.enabled: 这两个属性用于配置HTTP请求和响应的字符编码。spring.http.encoding.charset定义字符编码的名称(例如UTF-8),spring.http.encoding.enabled用于启用或禁用字符编码的自动配置。

三、静态资源处理

3.1 默认路径

默认的静态资源路径为:

· classpath:/META-INF/resources/

· classpath:/resources/

· classpath:/static/

· classpath:/public/

我们只要静态资源放在这些目录中任何一个,SpringMVC都会帮我们处理。

我们习惯会把静态资源放在classpath:/static/ 目录下。

3.2 覆盖路径

yml 复制代码
spring:
  web:
    resources:
      static-locations: classpath:/webapp #配置静态资源文件
      #一旦在这配置了,那么默认的文件夹就被覆盖了,全部失效,只能使用配置的默认文件夹
      #外部访问时,不需要加文件夹名的前缀,直接 /静态资源 即可

四、自定义拦截器(SpringMVC配置)

按正常的springmvc配置拦截器即可。

【SpringMVC】全局异常处理 拦截器 参数校验 扩展总结第四期

4.1 拦截器声明

java 复制代码
/**
 * @Description: 拦截器
 */
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("request : " + request + "response : " + response + "handler : " + handler);
        return true;
    }
}

4.2 拦截器配置

java 复制代码
/**
 * @Description: springmvc配置
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * /**  拦截当前目录及子目录下的所有路径 /user/**   /user/findAll  /user/order/findAll
     * /*   拦截当前目录下的以及子路径   /user/*     /user/findAll
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/*");
    }
}

4.2 拦截器测试

相关推荐
陈大爷(有低保)18 分钟前
UDP Socket聊天室(Java)
java·网络协议·udp
kinlon.liu32 分钟前
零信任安全架构--持续验证
java·安全·安全架构·mfa·持续验证
哈喽,树先生38 分钟前
1.Seata 1.5.2 seata-server搭建
spring·springcloud
王哲晓1 小时前
Linux通过yum安装Docker
java·linux·docker
java6666688881 小时前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存1 小时前
源码分析:LinkedList
java·开发语言
执键行天涯1 小时前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
Adolf_19931 小时前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
Jarlen1 小时前
将本地离线Jar包上传到Maven远程私库上,供项目编译使用
java·maven·jar
蓑 羽1 小时前
力扣438 找到字符串中所有字母异位词 Java版本
java·算法·leetcode