springboot静态资源的配置注意事项

1.springSecurity4+springboot 默认不拦截的静态资源路径,见SpringBootWebSecurityConfiguration 

private static List<String> DEFAULT_IGNORED = Arrays.asList("/css/**", "/js/**","/images/**", "/webjars/**", "/**/favicon.ico");

如何自定义配置?

见SecurityProperties的ignored属性,在 application.properties配置

security.ignored=/css/**, /js/**,/images/**, /webjars/**, /**/favicon.ico,/Hplus4.1/**,/assets/**

备注:application.properties的属性配置项和 *Properties结尾的类有对应关系;

SecurityProperties类上的注解 @ConfigurationProperties(prefix = "security"),表示该类的成员变量和application.properties文件中security开头的属性一一对应


2.哪些目录下的文件可以直接映射为静态资源文件(静态资源文件指的是css,img,js等前端文件)

见ResourceProperties 中的默认配置

SERVLET_RESOURCE_LOCATIONS = { "/" };

CLASSPATH_RESOURCE_LOCATIONS = {"classpath:/META-INF/resources/", "classpath:/resources/",

"classpath:/static/", "classpath:/public/" };

自定义配置修改application.properties的spring.resources.staticLocations属性。


3.springmvc如何将classpath目录下的静态资源文件映射成静态资源Url?

a.见ResourceHttpRequestHandler 的handleRequest 方法:首先获取Resource的InputStream,然后使用response输出。

b.获取Resource的InputStream的调用使用了责任链模式,见DefaultResourceResolverChain 的resolveResource 方法;本质上是调用ResourceResolver的实现类PathResourceResolver的resolveResourceInternal方法,并传入locations参数。

c.List<? extends Resource> locations参数对应的就是spring.resources.staticLocations中配置的内容。


其他相关类见:WebMvcAutoConfiguration  WebMvcConfigurationSupport  ResourceChainRegistration  ResourceHandlerRegistration


源码地址:https://gitee.com/json20080301/spring-boot-spring-security-thymeleaf

配置见application.properties

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值