跨域配置public class CorsConfig implements WebMvcConfigurer失效解决

文章讲述了在SpringBoot2.4.5和Java1.8环境下,配置全局跨域处理未生效的原因,涉及WebMvcConfigurationSupport类的影响以及解决方法,包括避免继承该类并改用Configurer接口进行静态资源配置。
摘要由CSDN通过智能技术生成

springboot版本:2.4.5

java版本:1.8

问题描述:

@Configuration
@Slf4j
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        log.info("跨域配置开始。。。。。");
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:63342")
                .allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }
}配置了全局跨域处理但未生效。

问题原因:1.在另一个类中配置了静态资源映射,继承了webMvcConfigurationSupport类

而WebMvcConfigurationSupport类会导致webmvc自动配置失效,因为在webmvc自动配置类中有条件注解:

2.如果使用了@EnableWebMvc这个注解也可能会导致其他配置类失效,造成类似的问题。因为@EnableWebMvc导入一个类DelegatingWebMvcConfiguration,而DelegatingWebMvcConfiguration则继承自WebMvcConfigurationSupport,因此会导致webmvc自动配置失效,导致其他配置类无法被识别。

解决方法:1.修改静态资源配置类,实现configurer接口而不是继承webMvcConfigurationSupport类来完成静态资源配置。

2.配置都在继承webMvcConfigurationSupport的这个类中完成。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值