当前位置:   article > 正文

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

spring-boot-starter-json

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

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

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

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter</artifactId>
  5. <version>2.1.4.RELEASE</version>
  6. <scope>compile</scope>
  7. </dependency>
  8. <dependency>
  9. <groupId>org.springframework</groupId>
  10. <artifactId>spring-web</artifactId>
  11. <version>5.1.6.RELEASE</version>
  12. <scope>compile</scope>
  13. </dependency>
  14. <dependency>
  15. <groupId>com.fasterxml.jackson.core</groupId>
  16. <artifactId>jackson-databind</artifactId>
  17. <version>2.9.8</version>
  18. <scope>compile</scope>
  19. </dependency>
  20. <dependency>
  21. <groupId>com.fasterxml.jackson.datatype</groupId>
  22. <artifactId>jackson-datatype-jdk8</artifactId>
  23. <version>2.9.8</version>
  24. <scope>compile</scope>
  25. </dependency>
  26. <dependency>
  27. <groupId>com.fasterxml.jackson.datatype</groupId>
  28. <artifactId>jackson-datatype-jsr310</artifactId>
  29. <version>2.9.8</version>
  30. <scope>compile</scope>
  31. </dependency>
  32. <dependency>
  33. <groupId>com.fasterxml.jackson.module</groupId>
  34. <artifactId>jackson-module-parameter-names</artifactId>
  35. <version>2.9.8</version>
  36. <scope>compile</scope>
  37. </dependency>
  38. </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对象                 

        

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/813169
推荐阅读
相关标签
  

闽ICP备14008679号