在fastxml的ObjectMapper中使用SimpleDateFormat是否安全

时间:2015-11-12 13:01:38

标签: java multithreading spring-mvc

大家好!

我知道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!

谢谢!

1 个答案:

答案 0 :(得分:3)

Should I declare Jackson's ObjectMapper as a static field?

上查看@StaxMan的评论

基线:

DateFormat克隆在杰克逊内部,因此使用SimpleDateFormat是安全的。