一,背景
近期项目上需求还没有确定,难道清闲,对项目中不合理的地方进行一些升级改造。鉴于项目使用的技术框架比较老旧(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开发,但几年的开发经验告诉我,配置文件使用起来也是很方便,后面会尽量使用注解合配置文件结合,进行开发工作。
希望可以遇见更好的项目,更好的技术,更好的自己。