摘要:你在寫接口的時候難免會遇到接收類型的日期參數(shù)例如轉(zhuǎn)換成類型情況。
你在寫接口的時候難免會遇到接收String類型的日期參數(shù)(例如:2018-04-21 11:57:36)轉(zhuǎn)換成Date類型情況。
百度了一番,發(fā)現(xiàn)大多數(shù)答案都是這樣子的:
@Configuration public class WebConfigBeans { @Autowired RequestMappingHandlerAdapter requestMappingHandlerAdapter; @PostConstruct public void initEditableValidation(){ ConfigurableWebBindingInitializer configurableWebBindingInitializer = (ConfigurableWebBindingInitializer) requestMappingHandlerAdapter.getWebBindingInitializer(); if(configurableWebBindingInitializer.getConversionService()!=null){ GenericConversionService service = (GenericConversionService) configurableWebBindingInitializer.getConversionService(); service.addConverter(new StringToDateConverter()); } } }
上面的代碼確實(shí)解決了問題,可是,代碼有點(diǎn)不綠色節(jié)能。
以下是我的實(shí)現(xiàn):
配置配置全局的String轉(zhuǎn)Date參數(shù)轉(zhuǎn)換器,可以簡單解決這個問題!
web配置如下(spring boot 1.x 2.x 通用):
@Configuration public class SpringMVCConfig extends WebMvcConfigurationSupport{ /** * 添加自定義的Converters和Formatters. */ @Override protected void addFormatters(FormatterRegistry registry) { registry.addConverter(new StringToDateConverter()); } }
綠色環(huán)保更節(jié)能!
String轉(zhuǎn)Date轉(zhuǎn)換器實(shí)現(xiàn)如下(好吧,我承認(rèn)下面的代碼這是我抄來的):
public class StringToDateConverter implements Converter{ private static final String dateFormat = "yyyy-MM-dd HH:mm:ss"; private static final String shortDateFormat = "yyyy-MM-dd"; @Override public Date convert(String source) { if (StringUtils.isBlank(source)) { return null; } source = source.trim(); try { if (source.contains("-")) { SimpleDateFormat formatter; if (source.contains(":")) { formatter = new SimpleDateFormat(dateFormat); } else { formatter = new SimpleDateFormat(shortDateFormat); } return formatter.parse(source); } else if (source.matches("^d+$")) { Long lDate = new Long(source); return new Date(lDate); } } catch (Exception e) { throw new RuntimeException(String.format("parser %s to Date fail", source)); } throw new RuntimeException(String.format("parser %s to Date fail", source)); } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69419.html
摘要:看成提供的一個特殊的攔截器。是一個,用于定義最主要用途,和方法,適用于所有使用方法攔截。為所有封裝統(tǒng)一異常處理代碼。為所有設(shè)置全局變量。用于為所有設(shè)置某個類型的數(shù)據(jù)轉(zhuǎn)換器。 Spring3.2開始提供的新注解,控制器增強(qiáng)(AOP),最主要的應(yīng)用是做統(tǒng)一的異常處理。@ControllerAdvice(看成spring mvc提供的一個特殊的攔截器)。@ControllerAdvice是一...
摘要:時間年月日星期四說明本文部分內(nèi)容均來自慕課網(wǎng)。哈希表實(shí)現(xiàn)命令,將哈希表中的域的值設(shè)為實(shí)現(xiàn)命令,返回哈希表中給定域的值實(shí)現(xiàn)命令,刪除哈希表中的一個或多個指定域,不存在的域?qū)⒈缓雎浴?shí)現(xiàn)命令,返回哈希表中,所有的域和值。 時間:2018年04月19日星期四說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):https://www.imooc.com教學(xué)源碼:https://github.com/zc...
摘要:所以適合簡單屬性值的獲取,不知何復(fù)雜對象的綁定。綁定對象綁定綁定列表轉(zhuǎn)換以及默認(rèn)值綁定過程回調(diào)函數(shù),高度定制綁定開始綁定成功綁定失敗沒有找到匹配的屬性綁定結(jié)束 Spring Boot中的屬性綁定 之前翻譯了一篇不怎么樣的文章,主要是翻譯的水平有限,自己翻譯的云里霧里,發(fā)現(xiàn)平時只會有@ConfigurationProperties注解,對SpringBoot強(qiáng)大的屬性綁定知之甚少,所以以...
摘要:請求重試攔截器錯誤解碼器在發(fā)生請求錯誤包括發(fā)生異常或者響應(yīng)數(shù)據(jù)不符合預(yù)期的時候,錯誤解碼器可將相關(guān)信息解碼到自定義異常中。 在SpringBoot項(xiàng)目直接使用okhttp、httpClient或者RestTemplate發(fā)起HTTP請求,既繁瑣又不方便統(tǒng)一管理。因此,在這里推薦一個適...
摘要:大家自己了解一下的使用方法,我這里就不進(jìn)行詳細(xì)的講述了。啟動方式兩種方式都可以主函數(shù)啟動或者驗(yàn)證訪問頁面,驗(yàn)證是否輸出了當(dāng)前時間。為了提高大家學(xué)習(xí)效果,錄制了同步的視頻課程,還望大家支持視頻課程 Spring Boot - 初識 Hello World 索引 Spring Boot - 初識 Hello World Spring Boot - Servlet、過濾器、監(jiān)聽器、攔截器 ...
閱讀 1545·2021-11-24 10:17
閱讀 1040·2021-09-29 09:43
閱讀 2170·2021-09-23 11:21
閱讀 2181·2019-08-30 14:13
閱讀 1304·2019-08-29 13:58
閱讀 3166·2019-08-28 17:51
閱讀 1820·2019-08-26 13:29
閱讀 2983·2019-08-26 10:13