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

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è)
不卡视频一区中文字幕| 欧美日韩在线一区2区| 国产一区二区欧美日本| 国产精品国产精品三级在线观看| 女人的天堂亚洲的天堂欧美| 美味人妻手机在线观看| 国产日本福利在线综合网| 天堂av在线免费观看| 成人黄色免费在线网站| 九九九热在线观看视频| 精品人妻二区中文字幕| 欧美成人黄片免费播放| av影片免费网址大全| 色婷婷亚洲综合色一区二区| 97视频在线观看网站| 午夜在线精品福利视频| 精品日韩av高清一区二区三区| 2020中文字字幕在线不卡| av电影在线中文字幕| 久久成人日韩电影午夜| 一级黄片电影中文字幕| 欧美成人精品高清在线| 国产精品一区二区婷婷| 亚洲av久久一区二区| av毛片在线播放免费| 亚洲国际精品女人乱码| 九九在线视频免费观看精彩| 欧美日在线观看加勒比| 午夜福利院在线观看免费| 清纯少妇激情四射网站| 久久亚洲中文字幕丝袜长腿| 青青草原成年人免费看| 福利一区福利二区视频| 青青草原一区在线观看| 精品午夜人妻一区二区| 欧美日韩黄色人人小视频| 天天操夜夜操夜夜操| 中文字幕日韩手机在线| 2023天天操夜夜操| 欧美三级欧美一级视频看| 人妻中文字幕av资源|