SpringBootWeb开发与thymeleaf模板引擎
简介:
使用Springboot应用,选中需要的模块,
Spring已经默认将场景配置好了,只需在配置文件中少量配置就可以运行起来
自己编写业务代码
自动配置原理
这个场景Springboot帮我们配置了什么、能不能修改呢?能修改哪些配置?
xxxxxAutoConfiguration:帮我们给容器自动配置组件
xxxproperties配置类来封装配置文件的内容
Springboot对静态资源的映射规则
@ConfigurationProperties(prefix="spring.resources",ignoreUnknownFields=false)
publicclassResourcePropertiesimplementsResourceLoaderAware{
//可以设置和静态资源有关的参数,缓存时间等
}
//webMVC的自动配置
WebMvcAuotConfiguration:
@Override
publicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){
if(!this.resourceProperties.isAddMappings()){
logger.debug("Defaultresourcehandlingdisabled");
return;
}
IntegercachePeriod=this.resourceProperties.getCachePeriod();
if(!registry.hasMappingForPattern("/webjars/**")){
customizeResourceHandlerRegistration(
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/").setCachePeriod(cachePeriod));
}
StringstaticPathPattern=this.mvcProperties.getStaticPathPattern();
//静态资源文件夹映射
if(!registry.hasMappingForPattern(staticPathPattern)){
customizeResourceHandlerRegistration(registry.addResourceHandler(staticPathPattern).addResourceLocations(this.resourceProperties.getStaticLocations()).setCachePeriod(cachePeriod));
}
}
//配置欢迎页映射默认识别我们template下的index.html;页面
@Bean
publicWelcomePageHandlerMappingwelcomePageHandlerMapping(ResourcePropertiesresourceProperties){
returnnewWelcomePageHandlerMapping(resourceProperties.getWelcomePage(),
this.mvcProperties.getStaticPathPattern());
}
//配置喜欢的图标即我们网页标签最左边的图标
@Configuration
@ConditionalOnProperty(value="spring.mvc.favicon.enabled",matchIfMissing=true)
publicstaticclassFaviconConfiguration{
privatefinalResourcePropertiesresourceProperties;
publicFaviconConfiguration(ResourcePropertiesresourceProperties){this.resourceProperties=resourceProperties;
}
@Bean
publicSimpleUrlHandlerMappingfaviconHandlerMapping(){
SimpleUrlHandlerMappingmapping=newSimpleUrlHandlerMapping();
mapping.setOrder(Ordered.HIGHEST_PRECEDENCE+1);
//所有**/favicon.ico
mapping.setUrlMap(Collections.singletonMap("**/favicon.ico",faviconRequestHandler()));
returnmapping;
}
@Bean
publicResourceHttpRequestHandlerfaviconRequestHandler(){
ResourceHttpRequestHandlerrequestHandler=newResourceHttpRequestHandler();
requestHandler.setLocations(this.resourceProperties.getFaviconLocations());
returnrequestHandler;
}
}
静态资源的映射
所有的/webjars/**都去classpath:/META-INF/resources/webjars/找资源;webjars:以jar包的方式引入静态资源;http://www.webjars.org/
pom.xml依赖:
<!--引入jquery-webjar-->在访问的时候只需要写webjars下面资源的名称即可
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>3.3.1</version>
</dependency>
访问地址:localhost:8080/webjars/jquery/3.3.1/jquery.js
"/**"访问当前项目的任何资源,都去(静态资源的文件夹)找映射(以下路径优先级从上往下)
"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":当前项目的根路径
localhost:8080/abc===默认去静态资源文件夹里面找abc
欢迎页;静态资源文件夹下的所有index.html页面;被"/**"映射;
localhost:8080/找index页面
所有的**/favicon.ico都是在静态资源文件下找;
模板引擎
如果您觉得本文的内容对您的学习有所帮助:
关键字:
html