最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用Jackson配置全局時(shí)間日期格式

 更新時(shí)間:2023年05月17日 11:04:33   作者:bug菌  
本文主要介紹了SpringBoot使用Jackson配置全局時(shí)間日期格式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

 1. 前言

不知道小伙伴對(duì)于日期字段,在項(xiàng)目中都是如何處理的,是單獨(dú)給每個(gè)字段都自定義日期格式還是做全局格式設(shè)置?這個(gè)我之前啊,是對(duì)日期都是有做單獨(dú)配置,給每個(gè)Entity帶有日期字段的都配@JsonFormat注解,具體配置如下:

//把屬性的格式序列化時(shí)轉(zhuǎn)換成指定的格式.
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")

這不就代碼冗余了嘛;既然每個(gè)都要設(shè)置一遍,那何不如想一個(gè)能一勞永逸的方法,將全局的日期格式都統(tǒng)一化,自己也用不著挨個(gè)挨個(gè)去配置了,你們覺得呢?

2. 環(huán)境說明

環(huán)境說明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

3. 默認(rèn)時(shí)間格式展示演示

接下來,我先為大家演示一下,寫個(gè)接口查詢log日志列表來演示一下默認(rèn)的Date類型的字段內(nèi)容輸出是何種樣子?我們一起拭目以待。

3.1 定義實(shí)體

先定義一個(gè)日志實(shí)體,演示代碼如下:

/**
 * 系統(tǒng)日志實(shí)體
 *
 */
@Data
@TableName("log_info")
@ApiModel(value = "系統(tǒng)日志實(shí)體", description = "系統(tǒng)日志實(shí)體")
public class LogInfo {
   private static final long serialVersionUID = 1L;
   @ApiModelProperty(value = "主鍵id自增列")
   @TableId(value = "id", type = IdType.AUTO)
   private int id;
   @ApiModelProperty(value = "操作類型")
   @TableField(value = "log_type")
   private String logType;
   @ApiModelProperty(value = "接口返回狀態(tài)碼")
   @TableField(value = "response_code")
   private int responseCode;
   @ApiModelProperty(value = "請(qǐng)求時(shí)間")
   @TableField(value = "operate_time")
   private Date operateTime;
   @ApiModelProperty(value = "消耗時(shí)間")
   @TableField(value = "spend_time")
   private Long spendTime;
   @ApiModelProperty(value = "url")
   @TableField(value = "url")
   private String url;
   @ApiModelProperty(value = "請(qǐng)求體")
   @TableField(value = "body")
   private String body;
   @ApiModelProperty(value = "ip")
   @TableField(value = "ip")
   private String ip;
   @ApiModelProperty(value = "查詢參數(shù)")
   @TableField(value = "query")
   private String query;
   @ApiModelProperty(value = "異常信息")
   @TableField(value = "exception")
   private String exception;
}

3.2 定義Controller

定義一個(gè)接口,請(qǐng)求路徑為:"/get-logs"。

/**
 * 不分頁(yè)查詢所有日志
 */
@GetMapping("/get-logs")
@ApiOperation(value = "不分頁(yè)查詢所有日志", notes = "不分頁(yè)查詢所有日志")
public ResultResponse<List> getLogList() {
    return new ResultResponse<>(logInfoService.list());
}

接著,我們通過swagger直接請(qǐng)求一下,可以發(fā)現(xiàn)operateTime字段本是Date類型,所以不難看出,當(dāng)你未處理該字段時(shí),默認(rèn)展示是Date字符串時(shí)間格式,即UTC格式。很不習(xí)慣也不方便頁(yè)面展示,所以,我們必須對(duì)該日期格式進(jìn)行處理,轉(zhuǎn)成比如“yyyy-MM-dd”或者“yyyy-MM-dd HH:mm:ss”等常規(guī)時(shí)間格式,這樣看著肯定舒服多了,也是頁(yè)面能接受的日期展示格式。

所以接下來,我就帶著大家如何來配置這個(gè)全局日期時(shí)間格式問題。

4. 配置 Jackson

在上方提到,如何一勞永逸,這不,我教你們,用到了Jackson,一個(gè)java的開源框架,一個(gè)超級(jí)好用的JSON解析類庫(kù),包括上方提到的“@JsonFormat”,也是來自于它,至于Jackson的詳細(xì)用法,我將在下期重點(diǎn)介紹,此文主要帶大家如何配置全局日期格式。

4.1 jackson依賴引入

<!--jackson依賴-->
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.9.1</version> 
</dependency>

解釋一下:jackson-databind 依賴 jackson-core 和 jackson-annotations這兩,當(dāng)添加 jackson-databind 依賴之后, jackson-core 和 jackson-annotations 也會(huì)一并被引入;在添加相關(guān)依賴包之后,你就能使用 Jackson了。

注意:如果你是springboot項(xiàng)目,有引入spring-boot-starter-web這個(gè)starter,自然就引入了jackson包,所以大家不要重復(fù)導(dǎo)包啦,特此提醒??!

然后,再給大家解讀下,Jackson依賴被添加后,刷新maven,可以看到j(luò)ackson-core 和 jackson-annotations這兩都被引入進(jìn)來了。具體請(qǐng)看如下截圖:

4.2 Jackson配置

對(duì)于ObjectMapper類作為Jackson類的主類,我們要實(shí)現(xiàn)的日期格式設(shè)置也是基于它來實(shí)現(xiàn)的,大家請(qǐng)看,我們要用到這個(gè)方法setDateFormat()。

配置JacksonConfig類,代碼實(shí)現(xiàn)如下:

package com.example.demo.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.text.SimpleDateFormat;
@Configuration
public class JacksonConfig {
    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper objectMapper = new ObjectMapper();
        // 自定義日期轉(zhuǎn)換格式
        objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
        return objectMapper;
    }
}

4.3 測(cè)試

我們直接在JacksonConfig類中將日期格式轉(zhuǎn)成[yyyy-MM-dd HH:mm:ss],接下來,我們重啟下項(xiàng)目,使配置類生效,我們?cè)俅握?qǐng)求該接口,接口返回內(nèi)容如下:

可以看到,日期格式將順利寫成了我們所指定的日期格式,或許有的小伙伴可能不太篤定,湊巧嘛,可以,那我們另設(shè)置一個(gè)日期格式,具體如下修改:

//自定義時(shí)間格式
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));

之后我們?cè)僦貑㈨?xiàng)目重新請(qǐng)求接口,大家請(qǐng)看。日期格式也是按指定格式輸出。

毫無疑問,如此設(shè)置,確實(shí)是可以針對(duì)全局是Date類型的字段進(jìn)行統(tǒng)一日期格式轉(zhuǎn)化,使用起來非常的方便,Jackson真的超級(jí)好用,推薦給大家。

到此這篇關(guān)于SpringBoot使用Jackson配置全局時(shí)間日期格式的文章就介紹到這了,更多相關(guān)SpringBoot 全局時(shí)間日期格式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 創(chuàng)建Jersey REST 服務(wù),基于Maven的實(shí)現(xiàn)

    創(chuàng)建Jersey REST 服務(wù),基于Maven的實(shí)現(xiàn)

    下面小編就為大家?guī)硪黄獎(jiǎng)?chuàng)建Jersey REST 服務(wù),基于Maven的實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • JAVA?ImageIO.read方法報(bào)錯(cuò)/無效問題及解決

    JAVA?ImageIO.read方法報(bào)錯(cuò)/無效問題及解決

    這篇文章主要介紹了JAVA?ImageIO.read方法報(bào)錯(cuò)/無效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • JDK17安裝教程以及其環(huán)境變量配置教程

    JDK17安裝教程以及其環(huán)境變量配置教程

    環(huán)境變量對(duì)Java初學(xué)者來說真的是一件頭疼的事,本人也經(jīng)歷過這樣的事情,這篇文章主要給大家介紹了關(guān)于JDK17安裝教程以及其環(huán)境變量配置的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • JavaWEB SMBMS實(shí)現(xiàn)密碼修改功能過程

    JavaWEB SMBMS實(shí)現(xiàn)密碼修改功能過程

    本文介紹了實(shí)現(xiàn)密碼修改功能的步驟,包括前端頁(yè)面、Dao層、Service層和Servlet層的編寫和調(diào)用,通過這些步驟,可以實(shí)現(xiàn)用戶密碼的修改功能
    2026-02-02
  • Java 繼承和多態(tài)的作用及好處

    Java 繼承和多態(tài)的作用及好處

    文章講解Java繼承與多態(tài)的概念、語法及應(yīng)用,繼承通過extends復(fù)用父類成員,減少冗余;多態(tài)實(shí)現(xiàn)方法重寫與向上轉(zhuǎn)型,提升靈活性與代碼復(fù)用性,動(dòng)態(tài)綁定降低圈復(fù)雜度,感興趣的朋友一起看看吧
    2025-06-06
  • 詳解idea+maven打jar包的兩種方式

    詳解idea+maven打jar包的兩種方式

    這篇文章主要介紹了idea+maven打jar包的兩種方式,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java啟動(dòng)時(shí)自定義配置文件路徑,自定義log4j2.xml位置方式

    java啟動(dòng)時(shí)自定義配置文件路徑,自定義log4j2.xml位置方式

    這篇文章主要介紹了java啟動(dòng)時(shí)自定義配置文件路徑,自定義log4j2.xml位置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • java 如何給對(duì)象中的包裝類設(shè)置默認(rèn)值

    java 如何給對(duì)象中的包裝類設(shè)置默認(rèn)值

    這篇文章主要介紹了java 如何給對(duì)象中的包裝類設(shè)置默認(rèn)值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java在?PDF?中添加數(shù)字簽名、水印與權(quán)限控制的詳細(xì)過程

    Java在?PDF?中添加數(shù)字簽名、水印與權(quán)限控制的詳細(xì)過程

    通過在PDF中添加數(shù)字簽名、水印以及權(quán)限控制,不僅可以防止文檔被擅自修改或打印,還能提升文檔的法律效力與專業(yè)性,下面給大家介紹Java在PDF中添加數(shù)字簽名、水印與權(quán)限控制的詳細(xì)過程,感興趣的朋友一起看看吧
    2025-06-06
  • java實(shí)現(xiàn)簡(jiǎn)易聊天功能

    java實(shí)現(xiàn)簡(jiǎn)易聊天功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡(jiǎn)易聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論

永修县| 灯塔市| 灵台县| 武义县| 鹿泉市| 南江县| 抚顺市| 平果县| 九江县| 哈密市| 贡觉县| 铅山县| 三穗县| 固阳县| 光山县| 皮山县| 吴江市| 金川县| 璧山县| 拜城县| 杭锦后旗| 雷波县| 阿拉善盟| 怀仁县| 丰县| 武邑县| 孝感市| 白水县| 宿迁市| 钟祥市| 偃师市| 黄梅县| 新建县| 阳泉市| 冷水江市| 海宁市| 历史| 禄丰县| 顺平县| 蒙城县| 沙坪坝区|