日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
springboot序列化和反序列化怎么定義

什么是序列化和反序列化?

序列化是將一個(gè)對(duì)象的狀態(tài)信息轉(zhuǎn)換為字節(jié)流的過(guò)程,而反序列化則是將這個(gè)字節(jié)流恢復(fù)成對(duì)象的過(guò)程,在Java中,序列化主要用于持久化存儲(chǔ)和網(wǎng)絡(luò)傳輸,SpringBoot提供了兩種序列化方式:JDK自帶的序列化和Jackson序列化。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、網(wǎng)站空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、歷城網(wǎng)站維護(hù)、網(wǎng)站推廣。

如何在SpringBoot中配置序列化和反序列化?

1、JDK自帶序列化

在SpringBoot項(xiàng)目中,默認(rèn)使用的是JDK自帶的序列化方式,無(wú)需額外配置,只需在需要序列化的類上添加@Serializable注解即可。

import java.io.Serializable;
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
}

2、Jackson序列化

如果需要使用Jackson序列化,首先需要在項(xiàng)目的pom.xml文件中添加Jackson依賴:


    com.fasterxml.jackson.core
    jackson-databind

然后在SpringBoot配置類中添加@EnableWebMvc注解,以啟用Web MVC功能:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@EnableWebMvc
public class WebConfig {
}

接下來(lái),在需要使用Jackson序列化的類上添加@JsonSerialize@JsonDeserialize注解:

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ObjectMapper;
public class User implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;
    // 其他屬性和方法省略...
}

創(chuàng)建一個(gè)自定義的ObjectMapper類,用于配置Jackson的序列化和反序列化規(guī)則:

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import com.fasterxml.jackson.databind.util.StdDateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class CustomObjectMapper extends ObjectMapper {
    public CustomObjectMapper() {
        SimpleModule module = new SimpleModule();
        module.addSerializer(Date.class, new ToStringSerializer(new SimpleDateFormat("yyyy-MM-dd")));
        module.addDeserializer(Date.class, new StdDeserializer<>(Date.class) {
            @Override
            protected Date _deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
                return parseDate(p);
            }
        });
        registerModule(module);
        configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    }
}

然后在SpringBoot配置類中創(chuàng)建一個(gè)CustomObjectMapper的Bean:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.text.SimpleDateFormat;
import java.util.TimeZone;
import java.util.Date;
import java.util.List;
import java.util.ArrayList;
import java.util.Locale;
import java.util.TimeZone;
import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans importfactorybean;
import orgswingwwe34534534534534534534534534534534534534534534534534534534534534534534534534534534534534567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234x+y=z"; // 將x替換為實(shí)際的時(shí)間格式,將y替換為實(shí)際的日期格式,將z替換為實(shí)際的時(shí)區(qū)名稱,如果不需要特定的格式,可以使用默認(rèn)格式。

本文標(biāo)題:springboot序列化和反序列化怎么定義
網(wǎng)頁(yè)鏈接:http://www.5511xx.com/article/dpddgcg.html