Я разрабатываю веб-сервис REST в spring MVC. Мне нужно изменить, как jackson 2 сериализует объектные объекты mongodb. Я не уверен, что делать, потому что я нашел частичную документацию для jackson 2, что я сделал, чтобы создать собственный сериализатор:
public class ObjectIdSerializer extends JsonSerializer<ObjectId> {
@Override
public void serialize(ObjectId value, JsonGenerator jsonGen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
jsonGen.writeString(value.toString());
}
}
Создайте ObjectMapper
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper() {
SimpleModule module = new SimpleModule("ObjectIdmodule");
module.addSerializer(ObjectId.class, new ObjectIdSerializer());
this.registerModule(module);
}
}
а затем зарегистрировать mapper
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="my.package.CustomObjectMapper"></bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
Мой CustomConverter никогда не вызывается. Я думаю, что определение CustomObjectMapper неверно, я адаптировал его из некоторого кода для jackson 1.x
В моих контроллерах я использую @ResponseBody. Где я поступаю неправильно? Благодаря