欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Springboot全局配置自動(dòng)格式化日期參數(shù),超簡(jiǎn)單直接拿去用-創(chuàng)新互聯(lián)

日常開發(fā)中,時(shí)間格式的參數(shù)出現(xiàn)頻率非常高,很多朋友對(duì)時(shí)間格式轉(zhuǎn)換也很頭疼,或者只知道如何配置,而不知道這些配置如何生效的。

創(chuàng)新互聯(lián)公司是專業(yè)的蒼南網(wǎng)站建設(shè)公司,蒼南接單;提供做網(wǎng)站、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蒼南網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

今天我們來梳理一下Springboot項(xiàng)目中配置日期轉(zhuǎn)換的三種方式,以及其大致原理。

Springboot版本:2.7.6

1,全局配置(推薦)

Spring提供了默認(rèn)的jackson配置,我們只需修改Spring的默認(rèn)配置,自定義對(duì)于日期參數(shù)的格式化方式即可。

新建一個(gè)配置類,構(gòu)建一個(gè)自定義的ObjectMapper即可全局生效。

@Configuration
@AutoConfigureBefore(JacksonAutoConfiguration.class)
public class JacksonConfig {

    @Bean
    public ObjectMapper objectMapper() {
        return new ObjectMapper()
                .setLocale(Locale.CHINA)
                .setTimeZone(TimeZone.getTimeZone(ZoneId.systemDefault()))
                //注冊(cè)一個(gè)序列化和反序列化的module
                .registerModule(javaTimeModule())
                //配置date格式參數(shù)的解析
                .setDateFormat(new SimpleDateFormat(DatePattern.NORM_DATETIME_PATTERN))
                .setLocale(Locale.CHINA)
                .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
                .findAndRegisterModules();
    }

    @Bean
    public Module javaTimeModule() {
        JavaTimeModule module = new JavaTimeModule();
        module.addSerializer(new LocalDateTimeSerializer(
                DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)
        ));
        module.addSerializer(new LocalTimeSerializer(
                DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN))
        );
        module.addSerializer(new LocalDateSerializer(
                DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN))
        );
        module.addDeserializer(LocalDateTime.class,
                new LocalDateTimeDeserializer(
                        DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)
                ));
        module.addDeserializer(LocalDate.class,
                new LocalDateDeserializer(
                        DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)
                ));
        module.addDeserializer(LocalTime.class,
                new LocalTimeDeserializer(
                        DateTimeFormatter.ofPattern(DatePattern.NORM_TIME_PATTERN)
                ));
        return module;
    }

}

上述中的幾項(xiàng)配置也比較簡(jiǎn)單,大家基本可以直接看出其作用,就不再一項(xiàng)項(xiàng)細(xì)說了。

另外大家可以注意到,自定義的類上使用了@AutoConfigureBefore(JacksonAutoConfiguration.class),他的目的在于提前構(gòu)建ObjectMapper,這樣當(dāng)JacksonAutoConfiguration初始化時(shí),使用的就是我們自定義的ObjectMapper,我們配置的格式化參數(shù)就可以生效了。

在JacksonAutoConfiguration中靜態(tài)類JacksonObjectMapperConfiguration中,

大家可以看到,當(dāng)ObjectMapper已經(jīng)存在時(shí),就不會(huì)再使用Spring默認(rèn)的了。

@ConditionalOnMissingBean是一個(gè)很好用的注解,大家在開發(fā)自己的組件時(shí)也可以嘗試通過他實(shí)現(xiàn)動(dòng)態(tài)的組件注冊(cè)。

關(guān)于如何找到Jackson配置的啟動(dòng)類,有的同學(xué)可能一開始不知道如何下手。

其實(shí)很簡(jiǎn)單,我們只要知道一個(gè)類是由Spring自動(dòng)配置的,那么就去Spring的autoconfigure.jar包下找就行,在org.springframework.boot.autoconfigure下面,我們可以找到Jackson的包,JacksonAutoConfiguration就在其中。

除了Jackson的配置,其他自動(dòng)配置的組件也可以在autoconfigure中找到。

2,通過@JsonFormat注解轉(zhuǎn)換

我們也可以在一個(gè)類的屬性上使用@JsonFormat達(dá)到格式化參數(shù)的目的。

@Data
public class OutputDTO {

    private String desc;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime time;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date date;
}

這種方式可以在需要的地方自由配置格式化方式,但是相對(duì)來說會(huì)增加許多工作,建議還是使用全局配置的方式。

3,yml配置文件自定義(不推薦)
spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

需要注意的是,這種方式默認(rèn)只對(duì)date生效,對(duì)于java8的LocalDate,LocalDateTime是不生效的。

對(duì)于為什么不生效感興趣的朋友可以在JacksonAutoConfiguration的內(nèi)部類Jackson2ObjectMapperBuilderCustomizerConfiguration中的customize.configureDateFormat方法中找到答案。

感謝您的點(diǎn)贊和關(guān)注。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

網(wǎng)頁(yè)標(biāo)題:Springboot全局配置自動(dòng)格式化日期參數(shù),超簡(jiǎn)單直接拿去用-創(chuàng)新互聯(lián)
本文路徑:http://aaarwkj.com/article22/cdhijc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動(dòng)態(tài)網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、建站公司、品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營(yíng)銷型網(wǎng)站建設(shè)
成人午夜福利影院在线| 熟妇高潮一区二区三区| 中文字幕av在线有码| 亚洲成av人片乱码午夜| 久久国产精品一区av瑜伽| 免费不卡无码毛片观看| 四虎成人免费永久视频| 亚洲国产欧美在线91| 久久久亚洲福利精品午夜| 一区二区蜜桃在线观看| 日本一二不卡高清在线视频| 色哟哟在线观看国产精品| 一本久道久久综合狠狠老| 在线蜜臀av中文字幕| 亚洲日本国产精品一区| 麻豆亚洲av熟女国产| 久久日韩制服丝袜人妻| 日本熟妇中文字幕系列| 在线观看男人的天堂av| 成人午夜在线免费观看| 日韩精品一区二区三区四区蜜桃 | 扒开少妇毛茸茸的大荫萍蒂| 国产免费久久黄av片| 国产一区二区精品久久久女同 | 国产精品日本一区二区三区在线| 极品女神福利视频久久| 久久中文字幕一区二区三区| 人体艺术日韩色噜噜| 中国一区二区三区毛片| 精品国产自在久久成人| 九九久久精品久久久精品| 日本黄色录像黄色录像| 国产aaa级日本一区二区三区| 亚洲综合色日本日b网| 国产精品白嫩初高中害羞小美女| 99人妻精品一区二区| 成人国产午夜福利网| 亚洲黄色av一区二区三区| 亚洲精品在线播放av| 日日摸夜夜添添出白浆| 国产麻豆精品免费喷白浆视频网站|