首页 > 其他分享 >4、SpringBoot2之整合SpringMVC

4、SpringBoot2之整合SpringMVC

时间:2023-12-25 09:04:03浏览次数:33  
标签:自定义 SpringMVC classpath public 静态 SpringBoot2 整合 目录 resources

创建名为springboot_springmvc的新module,过程参考3.1节

4.1、重要的配置参数

在 spring boot 中,提供了许多和 web 相关的配置参数(详见官方文档),其中有三个比较重要:

4.1.1、server.port

该配置参数用于设置 web 应用程序的服务端口号,默认值为 8080

4.1.2、server.servlet.context-path

该配置参数用于设置 web 应用程序的上下文路径,默认值为空

4.1.3、spring.resources.static-locations

该配置参数用于设置 web 应用程序的静态资源(图片、js、css和html等)的存放目录(详见4.2节),
默认值为 classpath:/static 、classpath:/public 、classpath:/resources 和 classpath:/META-INF/resources

4.2、静态资源目录的配置

spring boot 定义了静态资源的默认查找路径:
classpath:/static 、classpath:/public 、classpath:/resources 和 classpath:/META-INF/resources

只要将静态资源放在以上的任何一个目录中(习惯会把静态资源放在 classpath:/static 目录下),都能被访问到。

4.2.1、static静态目录示例

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>static.html</h1>

</body>
</html>

image

注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 static )

4.2.2、public静态目录示例

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>public.html</h1>

</body>
</html>

image

注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 public )

4.2.3、resources静态目录示例

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>resources.html</h1>

</body>
</html>

image

注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 resources )

4.2.4、META-INF/resources静态目录示例

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>META-INF_resources.html</h1>

</body>
</html>

image

注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 META-INF/resources )

4.2.5、自定义的静态目录示例

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>aaa.html</h1>

</body>
</html>

image

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>bbb.html</h1>

</body>
</html>

image

注意:当设置了自定义的静态资源目录之后,默认的静态目录 classpath:/static 、classpath:/public 、classpath:/resources 失效,
但默认的静态目录 classpath:/META-INF/resources 依然有效。

# 设置自定义的静态资源目录(本例为 aaa 和 bbb 目录)
spring.web.resources.static-locations=classpath:/aaa,classpath:/bbb

image

注意:外部访问静态资源时,不需要写自定义的静态资源目录(本例为 aaa )

image

注意:外部访问静态资源时,不需要写自定义的静态资源目录(本例为 bbb )

4.3、自定义拦截器的配置

4.3.1、创建拦截器

image

package online.liaojy.interceptor;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * @author liaojy
 * @date 2023/12/20 - 6:48
 */
public class TestInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("TestInterceptor --> preHandle()");
        return true;
    }

}

4.3.2、创建SpringMVC配置类

image

SpringMVC配置类的更多内容,请参考SpringMVC教程的14.4节

package online.liaojy.config;

import online.liaojy.interceptor.TestInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author liaojy
 * @date 2023/12/20 - 7:04
 */
// 配置类只要放在启动类所在的包或者子包即可生效
@Configuration
public class SpringMVCConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        TestInterceptor testInterceptor = new TestInterceptor();
        registry.addInterceptor(testInterceptor).addPathPatterns("/**");
    }

}

4.3.3、测试效果

image

    @RequestMapping("/testInterceptor")
    public String testInterceptor(){
        System.out.println("TestController --> testInterceptor()");
        return "testInterceptor()";
    }

image

标签:自定义,SpringMVC,classpath,public,静态,SpringBoot2,整合,目录,resources
From: https://www.cnblogs.com/Javaer1995/p/17915296.html

相关文章

  • 【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解
    目录1环境准备2响应页面3返回文本数据4响应JSON数据5知识点总结欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及IDEA配置Maven环境》,本文的上一篇为《SpringMVC......
  • Spring cache整合Redis
    Springcache整合Redis,并给它一个过期时间!转载自:https://zhuanlan.zhihu.com/p/138295935不知道你们有没给cache设置过过期时间,来试试?上一篇文章中,我们使用springboot集成了redis,并使用RedisTemplate来操作缓存数据,可以灵活使用。今天我们要讲的是Spring为我们提供......
  • 【Spring教程28】Spring框架实战:从零开始学习SpringMVC 之 请求与请求参数详解
    目录1设置请求映射路径1.1环境准备1.2问题分析1.3设置映射路径2请求参数2.1环境准备2.2参数传递2.2.1GET发送单个参数2.2.2GET发送多个参数2.2.3GET请求中文乱码2.2.4POST发送参数2.2.5POST请求中文乱码欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例......
  • Scrapy框架与数据库整合:如何实现动态数据存储?
    随着互联网数据量的不断增加,如何快速、准确地爬取、处理、存储数据成为了互联网应用开发的关键问题。而Scrapy框架作为一个高效的爬虫框架,凭借其灵活、高速的爬取方式被广泛应用于各种数据爬取场景。然而,仅仅将爬取到的数据保存到文件中,无法满足大部分应用程序的需要。因为在当前......
  • Bert-vits2-2.3-Final,Bert-vits2最终版一键整合包(复刻生化危机艾达王)
    近日,Bert-vits2发布了最新的版本2.3-final,意为最终版,修复了一些已知的bug,添加基于WavLM的Discriminator(来源于StyleTTS2),令人意外的是,因情感控制效果不佳,去除了CLAP情感模型,换成了相对简单的BERT融合语义方式。事实上,经过2.2版本的测试,CLAP情感模型的效果还是不错的,关于2.......
  • SpringMVC处理Java8新日期类参数
    SpringMVC如何将request参数自动封装为LocalDate和LocalDateTime在使用SpringMVC时,java.util.Date类型字段可以使用@DateTimeFormat注解将application/x-www-from-urlencoded类型的请求中的字符串进行自动转换。而Java8中新的时间类型该如何支持呢?在application/x-www-from-u......
  • Unity3D 自定义Shader 与 内置Shader 如何整合详解
    Unity3D是一款非常流行的游戏开发引擎,它提供了丰富的内置Shader供开发者使用。然而,有时候我们需要根据具体需求自定义Shader来实现特定的效果。本文将详细介绍Unity3D中如何整合自定义Shader和内置Shader,并给出相关的技术详解和代码实现。对啦!这里有个游戏开发交流小组里面聚集了......
  • 如何新建SpringBoot2.7.X项目
    新版的idea在创建SpringBoot项目时最低的JDK都需要选择jdk17,可是我的本地只有jdk8,通过创建maven工程,然后在pom中手动填写相关依赖等信息来创建项目,pom文件内容(官网copy的)<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-......
  • SpringBoot整合Dubbo常用注解类说明
    SpringBoot与Dubbo的整合pom依赖:<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.spr......
  • SpringBoot原理分析 | Spring Data整合:JDBC、Druid、Mybatis
    ......