通过源码了解springboot静态资源导入的几种方式

今天刚到学校,补一篇博客,小博客🧐
关于路径问题非常简单,直接上源码吧
同样是在spring.factories里找
如果不知道在哪里找,以及该文件的重要性这里不概述太多,路径在这:
在这里插入图片描述
在自动配置里就有这个文件
点开之后找到:WebMvcAutoConfiguration

找到和路径配置有关的代码:
这段代码就是所有的重点

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
	if (!this.resourceProperties.isAddMappings()) {
		logger.debug("Default resource handling disabled");
		return;
	}
	addResourceHandler(registry, "/webjars/**", "classpath:/META-INF/resources/webjars/");
	addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {	registration.addResourceLocations(this.resourceProperties.getStaticLocations());
		if (this.servletContext != null) {
			ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
			registration.addResourceLocations(resource);
		}
	});
}

😎😎😎分析:
1️⃣

if (!this.resourceProperties.isAddMappings()) {
	logger.debug("Default resource handling disabled");
	return;
}

目录自定义:
在这里插入图片描述
直接就修改即可,如果不修改的话使用默认的就是:在当前目录下的都可以识别,你也可以自定义🙋‍♀️

后面的webjars就是通过导入maven的方式来导入资源,但是这种方法已经不太常用了,这里不解释噢

2️⃣
同样在这段代码

addResourceHandler(registry, this.mvcProperties.getStaticPathPattern(), (registration) -> {	registration.addResourceLocations(this.resourceProperties.getStaticLocations());
		if (this.servletContext != null) {
			ServletContextResource resource = new ServletContextResource(this.servletContext, SERVLET_LOCATION);
			registration.addResourceLocations(resource);
		}

🔺 getStaticPathPattern()指的就是/**
在这里插入图片描述
3️⃣
🔺 addResourceLocations(resource)
同样在WebMvcAutoConfiguration打开WebProperties
在这里插入图片描述
打开Resources类,这里就有4个路径!这4个路径放的就是可以识别静态资源的路径😾😺
在这里插入图片描述
classpath路径指的就是resources下面的文件,默认的话只要打开一个spring boot文件就会生成:
在这里插入图片描述
默认使用的是上述4个路径中的第三个🙋‍♀️
在这里插入图片描述
这样这三个目录下的都可以访问的到,优先级为:
resources > static > public
😺😎
一般我的习惯就是:
public 下放一些公共的资源,比如一些js之类的
static下放一些静态资源,比如图片
resources就放一些上传的文件,uoload之类的

当然如果你都自定义了,那么其他的所有的路径就都失效了💥💥💥

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是X大魔王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值