首页 > 其他分享 >spring web mvc 集成 fastjson2

spring web mvc 集成 fastjson2

时间:2023-08-23 19:58:04浏览次数:61  
标签:fastjson2 converter spring fastMediaTypes mvc new com

maven依赖

参考文档 https://github.com/alibaba/fastjson2/blob/main/docs/spring_support_cn.md

<!- spring5 使用这个 ->
<dependency> 
    <groupId>com.alibaba.fastjson2</groupId> 
    <artifactId>fastjson2-extension-spring5</artifactId> 
    <version>2.0.39</version> 
</dependency>

<!- spring6 使用这个 ->
<dependency> 
    <groupId>com.alibaba.fastjson2</groupId> 
    <artifactId>fastjson2-extension-spring6</artifactId> 
    <version>2.0.39</version> 
</dependency>


<dependency>
    <groupId>com.alibaba.fastjson2</groupId>
    <artifactId>fastjson2</artifactId>
    <version>2.0.24</version>
</dependency>

spring mvc集成

image.png

@Configuration
public class JsonMessageConverterConfigurer implements WebMvcConfigurer {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
        // 自定义配置...
        FastJsonConfig config = new FastJsonConfig();
        config.setWriterFeatures(JSONWriter.Feature.WriteEnumsUsingName, JSONWriter.Feature.IgnoreNonFieldGetter);
        converter.setFastJsonConfig(config);

        // spring boot高版本无需配置,低版本不配置报错:Content-Type cannot contain wildcard type '*'
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON);
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        converter.setSupportedMediaTypes(fastMediaTypes);

        JSON.register(JsonObject.class, new ObjectWriter<JsonObject>() {
            @Override
            public void write(JSONWriter jsonWriter, Object object, Object fieldName, Type fieldType, long features) {
                JsonObject jsonObject = (JsonObject) object;
                if (jsonObject == null) {
                    jsonWriter.writeNull();
                }
                Gson gson = new Gson();
                String s = gson.toJson(jsonObject);
                jsonWriter.writeString(s);
            }
        });

        converters.add(0,converter);
    }
}

标签:fastjson2,converter,spring,fastMediaTypes,mvc,new,com
From: https://www.cnblogs.com/viogs/p/17652611.html

相关文章

  • springboot之RedisTemplate的访问单机,哨兵,集群模式
    springboot2默认已经使用了lettuce-core,没有使用jedis和Redisson,springboot1使用的是jedis。我使用的springboot版本是2.6.14。(对应的lettuce版本为6.1.10.RELEASE,对应jedis版本为3.7.1)<dependency><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactI......
  • SpringBoot集成liquibase
    Liquibase是一个用于跟踪、管理和应用数据库变化的开源的数据库重构工具。它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。前置准备创建一个SpringBoot项目开发环境SpringBoot-2.7.14�Java(jdk8)Mysql-8.0.27开始集成引入坐标mysql-conne......
  • Asp.net mvc 笔记
    捕捉处理全局异常自定义一个Attribute继承默认的HandleErrorAttributenamespaceEmpowerApiService.Filter{publicclassCustomerErrorAttribute:HandleErrorAttribute{privatestaticNLog.Loggerlogger=NLog.LogManager.GetCurrentClassLogger();......
  • Spring Boot通过企业邮箱发邮件被Gmail退回的问题解决方法
    这两天给我们开发的Chrome插件:Youtube中文配音增加了账户注册和登录功能,其中有一步是邮箱验证,所以这边会在SpringBoot后台给用户的邮箱发个验证信息。如果发邮件,之前的文章教程里就有,这里就不说了,着重说说这两天发现所有用Gmail注册的用户都被退件的问题。报错现象先来看看具体......
  • 任务调度工具_Spring Task在SpringBoot中使用教程
    ##SpringTask1.1介绍SpringTask是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。定位:定时任务框架作用:定时自动执行某段Java代码为什么要在Java程序中使用SpringTask?应用场景:1).信用卡每月还款提醒2).银行贷款每月还款提醒3).火车......
  • Spring BeanPostProcessor : MethodValidationPostProcessor
    概述MethodValidationPostProcessor处理bean中的JSR-303方法验证注解。比如某个bean方法使用了JSR-303注解如下:public@NotNullObjectmyValidMethod(@NotNullStringarg1,@Max(10)intarg2)当该bean的类上再使用了Spring的注解@Validated时,上面的这些方法就会是MethodValida......
  • springboot整合资源文件
    1:什么是SpringBoot?SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过==简化配置==来进一步简化Spring应用的整个搭建和开发过程。另外SpringBoot还通过继承大量框架使依赖包的版本冲突,以及引用不稳定性等问题的到了很好的解决。2:SpringBoot的优点(1)可以......
  • 基于Springboot的个人网站的设计与实现-计算机毕业设计源码+LW文档
    一、设计(论文)选题的依据1.研究背景与意义现在越来越多的人关注网站的自动化设计与开发,什么是个人网站呢?它的出现和运营究竟承载这怎样的信息?这并不是每个人都清楚的很多人无法准确的理解个人网站的优势和作用,我对网站的认识还处于相当低的程度中所以在正文开始前我想先阐述自己对......
  • SpringMVC执行流程流程版
    1.用户向服务器发送请求,请求被SpringMVC前端控制器DispatcherServlet捕获。2.DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI),判断请求URI对应的映射:a.不存在i.再次判断是否配置mvc:default-servlet-handlerii:如果开启default-servlet-:会先交给DispatherServl......
  • 从头到尾说一次 Spring 事务管理(器) | 京东云技术团队
    事务管理,一个被说烂的也被看烂的话题,还是八股文中的基础股之一。本文会从设计角度,一步步的剖析Spring事务管理的设计思路(都会设计事务管理器了,还能玩不转?)为什么需要事务管理?先看看如果没有事务管理器的话,如果想让多个操作(方法/类)处在一个事务里应该怎么做://MethodA:publicvoid......