Я использую Jackson JSON в приложении Spring 3 MVC. Чтобы не сериализовать все поля Date, я создал собственный объектный сопоставитель, который использует определенный DateFormat:
@Component("jacksonObjectMapper")
public class CustomObjectMapper extends ObjectMapper
{
Logger log = Logger.getLogger(CustomObjectMapper.class);
@PostConstruct
public void afterProps()
{
log.info("PostConstruct... RUNNING");
//ISO 8601
getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SZ"));
}
//constructors...
}
Этот пользовательский ObjectMapper внедряется в JsonConverter:
<bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes" value="application/json" />
<property name="objectMapper" ref="jacksonObjectMapper" /> <!-- defined in CustomObjectMapper -->
</bean>
Нет никаких исключений в журналах и сериализации, но он не собирает формат даты, он просто сериализует метку времени. Аннотация @PostConstruct работает, оператор log в методе находится в журналах.
Кто-нибудь знает, почему это не удается?