4、SpringBoot2之整合SpringMVC
创建名为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静态目录示例

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

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

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

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

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

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

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

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

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

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

注意:当设置了自定义的静态资源目录之后,默认的静态目录 classpath:/static 、classpath:/public 、classpath:/resources 失效,
但默认的静态目录 classpath:/META-INF/resources 依然有效。
# 设置自定义的静态资源目录(本例为 aaa 和 bbb 目录)
spring.web.resources.static-locations=classpath:/aaa,classpath:/bbb

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

注意:外部访问静态资源时,不需要写自定义的静态资源目录(本例为 bbb )
4.3、自定义拦截器的配置
4.3.1、创建拦截器

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配置类

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、测试效果

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

4、SpringBoot2之整合SpringMVC的更多相关文章
- springboot学习入门简易版六---springboot2.0整合全局捕获异常及log4j日志(12-13)
使用Aop实现 1创建异常请求 在原有项目基础上,jspController中创建一个可能发生异常的请求: /** * 全局捕获异常测试 * @param i * @return */ @Reques ...
- springboot学习入门简易版五---springboot2.0整合jsp(11)
springboot对jsp支持不友好,内部tomcat对jsp不支持,需要使用外部tomcat,且必须打包为war包. 1 创建maven项目 注意:必须为war类型,否则找不到页面. 且不要把js ...
- CXF WebService整合SpringMVC的maven项目
首先推荐博客:http://www.cnblogs.com/xdp-gacl/p/4259481.html http://blog.csdn.net/hu_shengyang/article/de ...
- spring整合springmvc和hibernate
上篇文章使用maven搭建了web环境,这篇来记录下如何使用spring整合springmvc和hibernate,亦即spring+springmvc+hibernate框架整合. 第一步:首先配置 ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
- eclipse 创建maven 项目 动态web工程完整示例 maven 整合springmvc整合mybatis
接上一篇: eclipse 创建maven 项目 动态web工程完整示例 eclipse maven工程自动添加依赖设置 maven工程可以在线搜索依赖的jar包,还是非常方便的 但是有的时候可能还需 ...
- SpringBoot整合系列-整合SpringMVC
原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9984607.html SpringBoot整合Spring MVC 步骤 第一步:添加必 ...
- Shiro 整合SpringMVC 并实现权限管理,登录和注销
Shiro 整合SpringMVC 并且实现权限管理,登录和注销 Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring S ...
- 【SpringBoot】息队列介绍和SpringBoot2.x整合RockketMQ、ActiveMQ
========================13.消息队列介绍和SpringBoot2.x整合RockketMQ.ActiveMQ ======================= 1.JMS介绍和 ...
- 整合SpringMVC框架和Spring框架
-------------------------siwuxie095 整合 SpringMVC 框架和 Spring 框架 ...
随机推荐
- NOIP模拟60
T1 整除 解题思路 答案就是 n 的每一个质因数的合法的答案数相乘(证明的话就....) 但是复杂度显然不允许(虽然我们可以给指数取模水过去).. 可以用积性筛(线性筛)利用质数筛出 \(x^m\) ...
- uniapp 上拉加载下拉刷新
page.json中配置"enablePullDownRefresh": true //单个页面修改刷新按钮的颜色 "app-plus": { "ti ...
- ansible-role角色
官网文档 https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html 为什么要用role 之前你部署的n ...
- webpack-bundle-analyzer 分析打包模块大小优化
安装 webpack-bundle-analyzer npm i webpack-bundle-analyzer -D 配置vue.config.js module.exports = defineC ...
- rabbitMq实现系统内的短信发送设计&动态获取BEAN
rabbitMq实现系统内的短信发送设计&动态获取BEAN 1.短信非系统的重要节点操作,可以在任务完成之后,比如下单成功,发送下单成功的mq消息,短信服务接收到mq消息,动态的判断该短信的c ...
- Java freemarker生成word模板文件(如合同文件)及转pdf文件方法
Java freemarker生成word模板文件(如合同文件)及转pdf文件方法创建模板文件ContractTemplate.docx ContractTemplate.xml 导入的Jar包 co ...
- apollo配置json
#json串原文[{"username":"李小刚","sex":"男"},{"username": ...
- Springboot项目密码加密器jasypt
最新版依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>j ...
- Unity 编辑器中获取选中的文件夹、文件路径
编辑器中获取选中的文件夹.文件路径 using UnityEditor; using UnityEngine; using Object = UnityEngine.Object; public cl ...
- openfoam 修改 src 库经验记录
遇到一个问题,要把 sprayFoam 求解器的蒸发模型修改为自定义蒸发模型. sprayFoam 求解器本身没有实现蒸发模型,而是调用 $FOAM_SRC/lagrangian/intermedia ...