大家好!
我知道SimpleDateFormat不是线程安全的,我们不应该在多线程环境中使用单个实例!
ObjectMapper是线程安全的,这很好。
现在我想知道在ObjectMapper中使用SimpleDateFormat是否安全! 这是我的自定义ObjectMapper:
public class MyObjectMapper extends ObjectMapper {
public MyObjectMapper() {
configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
}
}
我在springmvc的配置中使用它。
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
jsonConverter.setObjectMapper(new MyObjectMapper());
converters.add(jsonConverter);
}
如果是,那么ObjectMapper是如何做到的!
如果不是,我应该使用什么是DateFormat!
谢谢!
答案 0 :(得分:3)
在Should I declare Jackson's ObjectMapper as a static field?
上查看@StaxMan的评论基线:
DateFormat
克隆在杰克逊内部,因此使用SimpleDateFormat
是安全的。