Web开发

注册

 

发新话题 回复该主题

Web开发静态资源处理 [复制链接]

1#
Web开发探究简介

其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配。

使用SpringBoot的步骤:

、创建一个SpringBoot应用,选择我们需要的模块,SpringBoot就会默认将我们的需要的模块自动配置好

、手动在配置文件中配置部分配置项目就可以运行起来了

3、专注编写业务代码,不需要考虑以前那样一大堆的配置了。

要熟悉掌握开发,之前学习的自动配置的原理一定要搞明白!

比如SpringBoot到底帮我们配置了什么?我们能不能修改?我们能修改哪些配置?我们能不能扩展?

向容器中自动配置组件:***Autoconfiguration

自动配置类,封装配置文件的内容:***Properties

没事就找找类,看看自动装配原理!

我们之后来进行一个单体项目的小项目测试,让大家能够快速上手开发!

静态资源处理静态资源映射规则

首先,我们搭建一个普通的SpringBoot项目,回顾一下HelloWorld程序!

写请求非常简单,那我们要引入我们前端资源,我们项目中有许多的静态资源,比如css,js等文件,这个SpringBoot怎么处理呢?

如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的,对吧!但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式SpringBoot能不能来给我们写页面呢?当然是可以的,但是SpringBoot对于静态资源放置的位置,是有规定的!

我们先来聊聊这个静态资源映射规则:

SpringBoot中,SpringMVC的web配置都在WebMvcAutoConfiguration这个配置类里面;

我们可以去看看WebMvcAutoConfigurationAdapter中有很多配置方法;

有一个方法:addResourceHandlers添加资源处理

Override

publicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){

if(!this.resourceProperties.isAddMappings()){

//已禁用默认资源处理

logger.debug("Defaultresourcehandlingdisabled");

return;

}

//缓存控制

DurationcachePeriod=this.resourceProperties.getCache().getPeriod();

CacheControlcacheControl=this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();

//webjars配置

if(!registry.hasMappingForPattern("/webjars/**")){

customizeResourceHandlerRegistration(registry.addResourceHandler("/webjars/**")

.addResourceLocations("classpath:/META-INF/resources/webjars/")

.setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));

}

//静态资源配置

StringstaticPathPattern=this.mvcProperties.getStaticPathPattern();

if(!registry.hasMappingForPattern(staticPathPattern)){

customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern)

.addResourceLocations(getResourceLocations(this.resourceProperties.getStaticLocations()))

.setCachePeriod(getSeconds(cachePeriod)).setCacheControl(cacheControl));

}

}

读一下源代码:比如所有的/webjars/**,都需要去classpath:/META-INF/resources/webjars/找对应的资源;

什么是webjars呢?

Webjars本质就是以jar包的方式引入我们的静态资源,我们以前要导入一个静态资源文件,直接导入即可。

使用SpringBoot需要使用Webjars,我们可以去搜索一下:

网站:

分享 转发
TOP
发新话题 回复该主题