创建名为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静态目录示例
Title static.html
注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 static )
4.2.2、public静态目录示例
Title public.html
注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 public )
4.2.3、resources静态目录示例
Title resources.html
注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 resources )
4.2.4、META-INF/resources静态目录示例
Title META-INF_resources.html
注意:外部访问静态资源时,不需要写默认(或自定义)的静态资源目录(本例为 META-INF/resources )
4.2.5、自定义的静态目录示例
Title aaa.html
Title bbb.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 */// 配置类只要放在启动类所在的包或者子包即可生效@Configurationpublic 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()"; }
本文来自博客园,作者:Javaer1995,转载请注明原文链接:https://www.cnblogs.com/Javaer1995/p/17915296.html