多个配置WebMvcConfigurationSupport失效问题

这篇具有很好参考价值的文章主要介绍了多个配置WebMvcConfigurationSupport失效问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在项目中用类继承WebMvcConfigurationSupport实现拦截器

@Configuration
@RequiredArgsConstructor
public class SpringWebSupport extends WebMvcConfigurationSupport {
    private final ProjectInterceptor projectInterceptor;


    //    拦截器
//设置拦截器对象和拦截请求
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(projectInterceptor).addPathPatterns("
/**").excludePathPatterns("......"); //配置拦截路径
    }
}

同时呢,在我曾经写过的一个依赖包里(其他包),配置了一个消息转换器并且在项目中引入

public class JacksonObjectMapper extends ObjectMapper{


    public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
    public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
    public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";

    public JacksonObjectMapper () {
        super();
        //收到未知属性时不报异常
        this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);

        //反序列化时,属性不存在的兼容处理
        this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);


        SimpleModule simpleModule = new SimpleModule()
                .addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))

                .addSerializer(BigInteger.class, ToStringSerializer.instance)
                .addSerializer(Long.class, ToStringSerializer.instance)  // 对于long类型转为String
                .addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
                .addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
                .addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));

        //注册功能模块 例如,可以添加自定义序列化器和反序列化器
        this.registerModule(simpleModule);
    }
}
@Slf4j
@Configuration
public class MyWebConfig extends WebMvcConfigurationSupport {
    /**
     * 扩展 mvc 框架的消息转换器
     * @param converters
     */
    @Override
    protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
        // 创建消息转换器对象
        MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
        // 设置该消息转换器使用 JacksonObjectMapper 进行转换
        messageConverter.setObjectMapper(new  JacksonObjectMapper());
        // 将消息转换器对象追加到 mvc 框架的转换器集合中(加到最前面)
        converters.add(0, messageConverter);
    }
}

在启动类扫描了这另一个包里的WebMvcConfigurationSupport配置依赖。

希望的是:拦截器+消息转变换器全都生效,但是生效的只有拦截器,Long类型还是没有转换成String返回给前端。

DEBUG断点调试

多个配置WebMvcConfigurationSupport失效问题,java,前端,开发语言

发现启动的时候根本不会走这里,说明没生效

解决办法:把添加消息转换器代码迁移到和拦截器项目下同一个WebMvcConfigurationSupport里

直接就成了文章来源地址https://www.toymoban.com/news/detail-643098.html

到了这里,关于多个配置WebMvcConfigurationSupport失效问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WebMvcConfigurer和WebMvcConfigurationSupport(MVC配置)

    WebMvcConfigurer是接口,用于配置全局的SpringMVC的相关属性,采用JAVABean的方式来代替传统的XML配置文件,提供了跨域设置、静态资源处理器、类型转化器、自定义拦截器、页面跳转等能力。 WebMvcConfigurationSupport是webmvc的配置类,如果在springboot项目中,有配置类继承了WebMvcConfi

    2024年01月22日
    浏览(25)
  • nginx配置代理多个前端资源

    log: 背景 两套不同的前端使用同一个后端服务,前端使用的Nginx代理的dist包 前端 vue+elementui 后端 Python+flask Nginx代理设置 1.进入Linux机器,whereis nginx 查看Nginx安装位置  2.进到Nginx配置文件下 3.vim nginx.conf  通过多个server管理多个端口前端资源代理 #前端一,端口8080访问就可以

    2023年04月09日
    浏览(32)
  • springboot 项目访问静态资源遇到的问题,WebMvcConfigurer和WebMvcConfigurationSupport

    之前发过通过继承WebMvcConfigurationSupport来访问静态资源的文章——img标签访问静态资源,代码如下 这个方法是可行的,但会带来一个小问题。 像这些本身就要访问静态资源的,它们一般是实现了WebMvcConfigurer,而不是继承WebMvcConfigurationSupport。 当我们用上面代码中的方法访问

    2024年01月21日
    浏览(47)
  • SpringMVC中的拦截器不生效的问题解决以及衍生出的WebMvcConfigurationSupport继承问题思考

    过滤器代码(被Spring扫描并管理): 过滤器配置代码: 按理说我们发出请求 localhost/stu 之后,应该可以看到过滤器的效果,但是失效了。 网上的说法众说纷纭: 没加@Component或者@Configuration注解 @ComponentScan没扫描到 路径配置错了 以上三种说法一一排除之后,我发现一个博客提

    2024年02月01日
    浏览(28)
  • 多个数据webSocket推送太快导致前端渲染卡顿问题优化

    作者代码写的不怎么样,谅解!主要思路就是把websocket接收到的数据用一个数组暂存起来,达到一定数量一起修改统一渲染,可根据项目数据推送数据的速度适当调解数组大小,然后再加了一个可能一段时间内都到不到数组达标渲染数量,就使用定时器直接做渲染,防止数据

    2024年02月12日
    浏览(35)
  • 前端请求队列,解决多个请求同时请求一个接口导致阻塞的问题

    最近开发的数据大屏项目,使用echarts图表,通过拖拽的方式完成大屏的布局。 每一个图表编写一个vue文件,例如柱状图(barChart.vue): queryEchartsData的方法体如下: 折线图等其他图表同理,都是使用queryEchartsData来获取后端接口返回的数据,queryEchartsData写在queryData.js中,然后

    2024年01月20日
    浏览(34)
  • 服务器上一个域名对应多个前端项目的nginx转发配置

    场景: 当有两个前端项目A,B的时候,项目A(对应端口8000)和项目B(对应端口8001)分别部署在服务器的不同位置,通过服务器ip+端口都能正常访问单独的项目A和项目B;现在要求两个项目共用一个域名~~也就是说访问http://10.111.182.xxx:8000的时候默认访问项目A的资源,访问htt

    2024年02月05日
    浏览(39)
  • 使用 IIS 配置代理,转发 POST 和 GET 访问,配置 IIS 接口转发失效问题处理

    先说一下可能引发配置失败的原因:大概率是你的 Application Request Routing 没有配置好,或者你的正则表达没有搞好,往下看步骤自己对照哇~ 确保服务器已经安装 IIS 下载 URL 重写工具 - URL Rewrite 官方地址:www.iis.net/downloads/m… 点击安装 - 接受 - 下一步 - add 重新打开 IIS 安装

    2024年02月04日
    浏览(45)
  • 解决使用@Field注解配置分词器失效问题(Spring Data Elasticsearch)

    问题复现:插入数据时,实体类配置的@Field注解没有生效 实体类: 查看索引库,发现它使用动态映射,并没有使用静态映射: 解决方案:在插入数据时,提前创建索引库和映射。

    2024年02月16日
    浏览(26)
  • 强缓存与协商缓存、缓存失效的问题、缓存nginx配置、缓存存在哪里

    前端缓存,这是一个老生常谈的话题,也常被作为前端面试的一个知识点。今天我们来总结一下。 分类:前端缓存分为强缓存和协商缓存两种。 强缓存主要使用 Expires、Cache-Control 两个头字段,两者同时存在 Cache-Control 优先级更高。当命中强缓存的时候,客户端不会再求,直

    2024年01月25日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包