bugfix-sb-static外部化配置

在SpringBoot项目中,尝试将静态Excel资源外部化配置,排除了DruidDataSourceAutoConfigure,并设置了static-locations,但配置未生效。问题出现在实现了WebMvcConfigurer的类中,第一条配置覆盖了外部化配置。解决方案是移除该配置,以使外部化配置生效。配置加载顺序涉及YML配置、请求处理器链初始化和请求分发。
摘要由CSDN通过智能技术生成

Spring Boot Reference Documentationhttps://docs.spring.io/spring-boot/docs/2.7.5/reference/htmlsingle/

项目计划将SpringBoot resources 下的静态 excel 提取成外部化配置,于是配了:

spring:
  autoconfigure:
    exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure
  web:
    resources:
      # 外部化配置优先于内部
      static-locations: file:/static/,classpath:/static/

但配置没生效。

经排查,

idx2 哪里来的?

implements WebMvcConfigurer

解决方案:去掉 WebMvcConfigurer实现类 中的第一条配置

registry.addResourceHandler("/**").addResourceLocations(
        "classpath:/static/");

总结:

外部化配置的执行路径

1. 加载yml配置

org.springframework.boot.autoconfigure.web.WebProperties.Resources#setStaticLocations

2. 初始化请求处理器链

org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#addResourceHandlers

org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry#getHandlerMapping

3. 请求过来后分发,查找请求处理器

org.springframework.web.servlet.DispatcherServlet#doDispatch

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值