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