亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于SpringBoot項目遇到的坑--Date入?yún)栴}

 更新時間:2021年10月25日 10:51:22   作者:殺豬了  
這篇文章主要介紹了SpringBoot項目遇到的坑--Date入?yún)栴},具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot Date入?yún)栴}

springboot項目遇到的坑-----使用@ResponseBody @RequestBody,對象Date 類型入?yún)ⅲ祷豭son格式化

1.傳輸中的Date類型時間不準確

時區(qū)會有8個小時偏差

原因分析

而SpringBoot默認的是Jackson框架轉換,而Jackson默認的時間時區(qū)是GMT,對于中國時間少8個小時

解決方案

在傳輸?shù)腄ate屬性字段上加此注解

@JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd”)

在傳輸實體類中定義一個Long型成員變量存儲時間戳 傳輸過程中只傳時間戳 后臺將其進行轉換為Date然后賦值

   class Test{
		private Date time;
		private Long timeLong;
   }
   
   @PostMapping("/test")
   public Test test(@RequestBody Test test){
       test.setTime(new Date(test.getTimeLone()));
       return test;
   }

2.后臺返回的json數(shù)據(jù)

其中Date類型接收會自動轉換成Long類型的時間戳

在這里插入圖片描述

原因分析:

springboot1.x版本默認的json處理是jackson 會將date字段返回時間戳

解決方案:

全局配置

spring:  
 jackson:
   time-zone: GMT+8
   date-format: yyyy-MM-dd HH:mm:ss

如果個別實體需要使用其他格式的 pattern,在實體上加入注解即可

@JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd”)
private Date time;

在這里插入圖片描述

springboot接口入?yún)⒌囊恍﹩栴}

最近在工作中遇到一個接口入?yún)㈩愋娃D換錯誤未被處理的問題,于是整理了一些關于springmvc入?yún)⒌膯栴}

入?yún)⒔壎?/h3>

1、入?yún)⒅形覀冏畛R姷氖莇ate類型的參數(shù)轉換,這個可以通過注解來實現(xiàn)參數(shù)類型的轉換,只需在bean對象的屬性上方添加注解@DateTimeFormat(pattern=“yyyy-MM-dd”),pattern為時間對象的格式化

在這里插入圖片描述

2、在controller類里定義數(shù)據(jù)綁定類

/**
     * 在controller層中加入一段數(shù)據(jù)綁定代碼
     * @param webDataBinder
     */
    @InitBinder
    public void initBinder(WebDataBinder webDataBinder) throws Exception{
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        simpleDateFormat.setLenient(false);
        webDataBinder.registerCustomEditor(Date.class , new CustomDateEditor(simpleDateFormat , true));
    }

3、定義全局的參數(shù)類型轉換器

首先建立一個實現(xiàn)Converter的轉換器

 public class DateConverter implements Converter<String,Date> {
     private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     @Override
     public Date convert(String s) {
         if ("".equals(s) || s == null) {
            return null;
         }
         try {
            return simpleDateFormat.parse(s);
         } catch (ParseException e) {
             e.printStackTrace();
         }
         return null;
     }
 }

然后將該參數(shù)轉換器綁定到springmvc的配置中

@Configuration
public class WebConfigBeans {
    @Autowired
    private RequestMappingHandlerAdapter handlerAdapter;
    /**
     * 增加字符串轉日期的功能
     */
    @PostConstruct
    public void initEditableAvlidation() {
        ConfigurableWebBindingInitializer initializer = (ConfigurableWebBindingInitializer)handlerAdapter.getWebBindingInitializer();
        if(initializer.getConversionService()!=null) {
            GenericConversionService genericConversionService = (GenericConversionService)initializer.getConversionService();           
            genericConversionService.addConverter(new StringToDateConverter());
        }
    }
}

入?yún)㈠e誤全局異常處理

在springmvc的模型中,若參數(shù)轉換出現(xiàn)異常,會直接跳轉到默認的錯誤400頁面,如果我們做的為接口,需返回一個代表錯誤的json對象時,我們可以使用一個全局的異常處理類,類上添加注解@RestControllerAdvice使得異常處理后返回rest風格的對象,使用@ControllerAdvice返回頁面

@RestControllerAdvice
public class ControllerAdvice  {
@ExceptionHandler(value = {org.springframework.validation.BindException.class})
    public BaseResp dealDateFarmatException(Throwable exception) {
        BaseResp resp = new BaseResp();
        resp.setCode("400");
        resp.setStatus(false);
        resp.setMsg("參數(shù)類型錯誤");
        return resp;
    }
    }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • IDEA中使用Typora編輯md文件的方法

    IDEA中使用Typora編輯md文件的方法

    這篇文章主要介紹了IDEA中使用Typora編輯md文件的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Java基礎-封裝和繼承

    Java基礎-封裝和繼承

    這篇文章主要介紹了Java面向對象編程(封裝/繼承/多態(tài))實例解析的相關內容,具有一定參考價值,需要的朋友可以了解下希望可以幫助到你
    2021-07-07
  • Java中的接口和抽象類用法實例詳解

    Java中的接口和抽象類用法實例詳解

    這篇文章主要介紹了Java中的接口和抽象類用法,結合實例形式較為詳細的分析了Java中關于接口和抽象類的概念、定義、用法與相關注意事項,需要的朋友可以參考下
    2015-12-12
  • SpringCloud-Config分布式配置代碼示例

    SpringCloud-Config分布式配置代碼示例

    這篇文章主要介紹了SpringCloud-Config分布式配置代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • 淺談Java循環(huán)中的For和For-each哪個更快

    淺談Java循環(huán)中的For和For-each哪個更快

    本文主要介紹了淺談Java循環(huán)中的For和For-each哪個更快,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Spring整合Quartz實現(xiàn)定時任務調度的方法

    Spring整合Quartz實現(xiàn)定時任務調度的方法

    下面小編就為大家?guī)硪黄猄pring整合Quartz實現(xiàn)定時任務調度的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • .NET程序員如何入門Spring Boot詳解

    .NET程序員如何入門Spring Boot詳解

    這篇文章主要介紹了.NET程序員如何快入門Spring Boot,微軟給VS Code提供了編寫Java的插件,你可以在VS Code上愉快地寫Java。,需要的朋友可以參考下
    2019-06-06
  • java spi最全使用總結

    java spi最全使用總結

    SPI英文全稱為Service Provider Interface,顧名思義,服務提供者接口,它是jdk提供給“服務提供廠商”或者“插件開發(fā)者”使用的接口
    2022-02-02
  • 阿里云OSS基于java使用詳解

    阿里云OSS基于java使用詳解

    這篇文章主要介紹了阿里云OSS基于java使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Java數(shù)據(jù)結構超詳細分析二叉搜索樹

    Java數(shù)據(jù)結構超詳細分析二叉搜索樹

    二叉搜索樹是以一棵二叉樹來組織的。每個節(jié)點是一個對象,包含的屬性有l(wèi)eft,right,p和key,其中,left指向該節(jié)點的左孩子,right指向該節(jié)點的右孩子,p指向該節(jié)點的父節(jié)點,key是它的值
    2022-03-03

最新評論