文章总结:作为一个后端开发,在Springboot中怎样引入需要的js依赖以及常用的静态资源映射呢?SpringBoot已经给做好了自动化配置,使用时只需要按照默认的配置去放相应的文件,就可以快速上手。
1、创建SpringBoot web项目(参考之前文章-使用Spring Initializer快速创建Spring Boot项目)
1)创建SpringBoot 应用,选择需要的模块;
2)SpringBoot 已经默认配置好相应的场景,只需指定少量配置就可以运行;
3)编写业务代码
2、SpringBoot web的自动配置会加载那些配置
xxxxAutoConfiguration:给容器中自动配置组件;xxxxProperties:配置类来封装配置文件的内容;
@Configuration(
proxyBeanMethods = false
)
@ConditionalOnWebApplication(
type = Type.SERVLET
)
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})
public class WebMvcAutoConfiguration {
//Web 加载的配置组件
@Deprecated
@ConfigurationProperties(
prefix = "spring.resources",
ignoreUnknownFields = false
)
public class ResourceProperties extends Resources {
// 配置文件可以设置和静态资源有关的参数,缓存时间等
3、SpringBoot对静态资源的映射规则;
1)添加静态资源文件映射 :WebMvcAutoConfiguration 中的addResourceHandlers 方法
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
logger.debug("Default resource handling disabled");
} else {
this.addResourceHandler(registry, "/webjarsfavicon.ico 都是在静态资源文件下找(下面的源码Springboot 版本为1.5.3)
//配置喜欢的图标
@Configuration
@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)
public static class FaviconConfiguration {
private final ResourceProperties resourceProperties;
public FaviconConfiguration(ResourceProperties resourceProperties) {
this.resourceProperties = resourceProperties;
}
@Bean
public SimpleUrlHandlerMapping faviconHandlerMapping() {
SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
mapping.setOrder(Ordered.HIGHEST_PRECEDENCE + 1);
//所有 **/favicon.ico
mapping.setUrlMap(Collections.singletonMap("**/favicon.ico",
faviconRequestHandler()));
return mapping;
}
@Bean
public ResourceHttpRequestHandler faviconRequestHandler() {
ResourceHttpRequestHandler requestHandler = new ResourceHttpRequestHandler();
requestHandler
.setLocations(this.resourceProperties.getFaviconLocations());
return requestHandler;
}
}
总结:之前只会从静态文件夹里引入常用的全框架js,通过此篇文章知道了,还可以通过maven引入;想要配置欢迎页和角标都是在默认的静态文件下的index.heml和favicon.ico 。



