SpringBoot揭密:spring-boot-starter-json介绍

        SpringBoot支持三种Json库:Jackson、Gson、JSON-B,Jackson是SpringBoot官方推荐的默认库。SpringBoot分别提供了Jackson、Gson、JSON-B的自动装配:

org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\
org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration,\

Jackson是spring-boot-starter-json引入的模块功能,当Jackson在类路径上时,会自动配置ObjectMapper bean。spring-boot-starter-json pom如下:

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>2.1.4.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.1.6.RELEASE</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.8</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.datatype</groupId>
      <artifactId>jackson-datatype-jdk8</artifactId>
      <version>2.9.8</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.datatype</groupId>
      <artifactId>jackson-datatype-jsr310</artifactId>
      <version>2.9.8</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.module</groupId>
      <artifactId>jackson-module-parameter-names</artifactId>
      <version>2.9.8</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

如果Gson在classpath上,则会再自动装配Gson bean,并提供了几个spring.gson.*配置属性来自定义配置。为了获得更多控制,可以使用一个或多个GsonBuilderCustomizer bean,如果JSON-B API在classpath上,也会自动装配Jsonb bean。首选的JSON-B实现是Apache johnzon,它提供了依赖关系管理。

        值得注意的是spring-boot-starter-web中包括了spring-boot-starter-json,因为spring mvc中处理请求时入参和返回结果需要借助json模块进行序列化和反序列化。spring mvc中json的解析离不开HttpMessageConvert接口,他是一个消息转换工具,主要有两方面的功能:

        1. 将服务端返回的对象序列化成JSON字符串

        2. 将前端传来的JSON字符串反序列化成Java对象                 

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值