spring boot静态资源规则与定制化

本文详细介绍了Spring Boot中静态资源的访问配置,包括默认目录、自定义访问前缀以及改变默认资源路径的方法。同时,提到了欢迎页的设置和favicon.ico小图标的应用。此外,还探讨了Spring Boot的自动配置原理,涉及WebMvcAutoConfiguration类及其对静态资源配置的影响。
摘要由CSDN通过智能技术生成

1.静态资源访问

1.静态资源目录

   只要静态资源放在类路径下的/static或者/public或者/resources或者META-INF/resources目录下,就可以通过项目根路径/+静态资源名访问。

  原理:静态映射/** (项目路径下的所有)

请求进来先找Controller看能不能处理,不能处理的所有请求就交给静态资源处理器,静态资源也找不到就返回404.

2.静态资源访问前缀:默认无前缀/**

可以使用配置文件配置,application.yaml

spring:
  mvc:
    static-path-pattern: /res/**  //表示访问项目根路径/res+静态资源名

3.改变静态默认静态资源目录:

spring:
  mvc:
    static-path-pattern: /res/**

  resources:
    static-locations: classpath:/haha //表示使用类路径下的haha文件夹作为静态资源目录

 

其他:webjars(了解)  https://www.webjars.org/

把静态资源作为jar包导入,访问项目路径+对应jar包的目录。

 

 

2.欢迎页

静态资源路径下的index.html

  •     可以配置静态资源路径
  •     但是不可以配置静态资源访问前缀,否则index.html不能被默认访问

3.favicon.icon小图标

静态资源路径下的favicon.icon会自动被作为小图标

  • 但是不可以配置静态资源访问前缀,否则index.html不能被默认访问

 

 

静态资源配置原理(未完善)

  • springboot启动默认加载xxxautoconfihuration配置类(自动配置)
  • springMvc功能的自动配置类WebMvcAutoConfiguration,
@Configuration(proxyBeanMethods = false)
@ConditionalOnWebApplication(type = Type.SERVLET)
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)  //定制化配置相关
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class,
      ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {
  • 给容器中配了什么
@Configuration(proxyBeanMethods = false)
@Import(EnableWebMvcConfiguration.class)
@EnableConfigurationProperties({ WebMvcProperties.class,
      org.springframework.boot.autoconfigure.web.ResourceProperties.class, WebProperties.class })
@Order(0)
public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {
  • 配置文件和相关属性进行了配置绑定WebMvcProperties.class=spring.mvc ,ResourceProperties.class=spring.resources,WebProperties.class=spring.web

 

 

配置类只有一个有参构造器,那么有参构造器中的值都会去容器中找

public WebMvcAutoConfigurationAdapter(WebProperties webProperties, WebMvcProperties mvcProperties,
      ListableBeanFactory beanFactory, ObjectProvider<HttpMessageConverters> messageConvertersProvider,
      ObjectProvider<ResourceHandlerRegistrationCustomizer> resourceHandlerRegistrationCustomizerProvider,
      ObjectProvider<DispatcherServletPath> dispatcherServletPath,
      ObjectProvider<ServletRegistrationBean<?>> servletRegistrations) 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值