一,背景
近期項目上需求還沒有確定,難道清閑,對項目中不合理的地方進行一些升級改造。鑒於項目使用的技術框架比較老舊(spring 3.0+) ,一直沒有對此做大的升級改造。由於之前項目入參,出參都是使用統一的map進行接收,字段使用String進行接受,導致開發人員工作時,重復代碼量大,效率低下。於是做了一些優化處理,比如統一對日期進行處理。這里簡單介紹對日期處理問題。
二,對前端傳來的日期統一處理
2.1 編寫DateConvert類
package com*.common.convert; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.convert.converter.Converter; public class DataConvert implements Converter<String, Date> { private static final Logger LOGGER= LoggerFactory.getLogger(DataConvert.class); public String datePattern="yyyy-MM-dd HH:mm:ss"; public void setDatePattern(String datePattern) { this.datePattern = datePattern; } @Override public Date convert(String source) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(datePattern); try { return simpleDateFormat.parse(source); } catch (ParseException e) { LOGGER.error("對日期進行格式轉換異常!期望的格式:{}",datePattern,e); } return null; } }
2.2 配置修改
<mvc:annotation-driven conversion-service="conversionService" /> <!-- 配置統一日期格式轉換器(前端傳入-后台接收處理) --> <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> <property name="converters"> <set> <bean class="com.winning.mmap.core.common.convert.DataConvert"> <property name="datePattern" value="yyyy-MM-dd HH:mm:ss" /> </bean> </set> </property> </bean>
三,對返回日期格式統一處理
由於springmvc3.0.X不支持<mvc:annotation-driven/> 子標簽配置,所以使用如下配置:
<!--springmvc3.0.5對返回日期格式進行統一轉換配置 --> <bean id="dateHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> <property name="objectMapper"> <bean class="org.codehaus.jackson.map.ObjectMapper"> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> </bean> </property> </bean> </property> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="dateHttpMessageConverter"/> </list> </property> </bean>
當然,如果使用更高版本,配置則更為簡單。
四,結語
現在流行無配置文件化開發,比如springboot開發,但幾年的開發經驗告訴我,配置文件使用起來也是很方便,后面會盡量使用注解合配置文件結合,進行開發工作。
希望可以遇見更好的項目,更好的技術,更好的自己。