东八区springboot如何配置序列化

下面是详细讲解“东八区SpringBoot如何配置序列化”的攻略。

1、序列化概念简述

Java中的序列化是指将一个Java对象转化为字节流,这样可以将对象存储在磁盘上或通过网络传输。而反序列化则是将字节流转化为对象。

在Spring Boot中,对象的序列化往往用于将对象作为响应返回给客户端或者使用Redis等缓存技术进行存储。

2、Spring Boot 序列化自动配置

Spring Boot提供了序列化的自动配置,可以根据依赖的情况自动地配置对象的序列化方式。

在使用Spring Boot 2.x版本时,默认的序列化实现为Jackson,而在使用Spring Boot 1.x版本时,默认的序列化实现为Jackson或Gson。Jackson是一个强大而灵活的序列化库,Gson则是Google开源的序列化库。

3、配置Jackson序列化

3.1、Jackson的依赖

若使用的Spring Boot版本为2.x,则需要添加下述依赖:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

3.2、自定义Jackson序列化方式

在Spring Boot中,可以通过自定义Jackson的ObjectMapper进行序列化的配置。在Spring Boot启动时,会装配一个默认的ObjectMapper,若需要定制化配置,则需要自定义一个ObjectMapper来替代默认配置。

示例1. 自定义Jackson的ObjectMapper进行日期格式化

把Java的Date类型按指定格式序列化为字符串输出。例如将Date类型按 yyyy-MM-dd HH:mm:ss 格式序列化输出。

@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        objectMapper.setDateFormat(dateFormat);
        return objectMapper;
    }

}

示例2. 自定义Jackson的ObjectMapper进行属性配置

@Configuration
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
        objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
        return objectMapper;
    }

}

4、配置Gson序列化

4.1、Gson的依赖

若使用的Spring Boot版本为1.x,则需要添加下述依赖:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
</dependency>

4.2、自定义Gson序列化方式

示例1. 自定义Gson的GsonBuilder进行日期格式化

将Java的日期类型按指定格式序列化为字符串输出。例如将Date类型按 yyyy-MM-dd HH:mm:ss 格式序列化输出。

@Configuration
public class GsonConfig {

    @Bean
    public Gson gson() {
        Gson gson = new GsonBuilder()
                .setDateFormat("yyyy-MM-dd HH:mm:ss")
                .create();
        return gson;
    }

}

示例2. 自定义Gson的GsonBuilder进行属性配置

@Configuration
public class GsonConfig {

    @Bean
    public Gson gson() {
        Gson gson = new GsonBuilder()
                .serializeNulls()
                .setFieldNamingStrategy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
                .create();
        return gson;
    }

}

5、总结

通过自定义Jackson或Gson的ObjectMapper或GsonBuilder可以方便地实现序列化的配置。其中,Jackson序列化的自动配置是Spring Boot的默认实现。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:东八区springboot如何配置序列化 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 基于Java中的数值和集合详解

    基于Java中的数值和集合详解 本文将介绍 Java 中的数值类型和集合类的基本知识,同时提供几个示例,帮助读者更好地理解这些概念。 数值类型 Java 中的基本数据类型包括整型(int 和 long)、浮点型(float 和 double)、字符型(char)和布尔型(boolean)。这些类型在计算机编程中非常常见,因此应当掌握。 整型 整型分为 int…

    Java 2023年5月26日
    00
  • Struts2 漏洞分析及如何提前预防

    Struts2 是一个流行的 Java Web 应用程序框架,由于其广泛的应用和不断的开发,一些漏洞也逐渐被发现和修复。但是,攻击者仍然可以利用一些未经修补的漏洞对 Struts2 应用程序进行攻击。本文将详细讲解 Struts2 的漏洞及如何在应用程序中提前预防这些漏洞。 Struts2 漏洞分析 Struts2 漏洞的危害 Struts2 的漏洞可能会导…

    Java 2023年5月20日
    00
  • Java8 新特性Lambda表达式实例详解

    Java8 新特性Lambda表达式实例详解 Java8 新特性Lambda表达式,是一个非常强大的工具。它可以让我们编写出更加简洁清晰易懂的代码,并且大大提高了代码编写的效率。在本文中,我将详细讲解Lambda表达式的语法和使用方法,并通过两个实例帮助您更好地理解这个新特性。 Lambda表达式的语法 Lambda表达式的语法非常简单,它由三个部分构成:参…

    Java 2023年5月26日
    00
  • Spring Boot高级教程之Spring Boot连接MySql数据库

    连接数据库是Web应用程序开发中的一个重要环节。在Spring Boot应用程序中,我们可以使用Spring Data JPA来连接MySQL数据库。以下是实现Spring Boot连接MySQL数据库的完整攻略: 添加依赖 在Spring Boot应用程序中,我们需要添加以下依赖来连接MySQL数据库: <dependency> <gro…

    Java 2023年5月15日
    00
  • 一文吃透Elasticsearch

    本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址 如果访问不了Github,可以访问gitee地址。 gitee地址 跟大家分享Elastic…

    Java 2023年4月17日
    00
  • SpringBoot项目集成依赖Mybatis步骤

    下面是SpringBoot项目集成依赖Mybatis步骤的完整攻略。 1. 引入Mybatis相关依赖 在pom.xml文件中添加以下依赖,其中包括Mybatis核心依赖 mybatis-spring-boot-starter ,Mysql驱动包mysql-connector-java以及Mybatis分页插件pagehelper。 <!– myba…

    Java 2023年5月19日
    00
  • Bootstrap每天必学之级联下拉菜单

    下面我将为您详细讲解Bootstrap每天必学之级联下拉菜单的完整攻略。 什么是级联下拉菜单? 级联下拉菜单又称为多级联动下拉菜单或者多级联动菜单,是指多组下拉菜单,它们之间有着上下级或者父子关系,下一级菜单的内容将会受到上一级菜单的选项影响。 Bootstrap如何实现级联下拉菜单? Bootstrap通过在li标签上添加data-*属性,将子级数据与父级…

    Java 2023年6月15日
    00
  • 详解AngularJs与SpringMVC简单结合使用

    详解AngularJs与SpringMVC简单结合使用攻略 1. 基本介绍 AngularJS 是一个非常流行的前端框架,提供了很多便捷的功能,比如:双向数据绑定、动态页面加载、表单验证等。而 SpringMVC 是一个非常流行的 Java Web 框架,它提供了很多便捷的功能,比如:MVC 设计模式、请求映射、数据绑定等。将 AngularJS 和 Spr…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部