Я использую Джексон 2.9.6. У меня есть контроллер, в котором я пытаюсь отправить дополнительный в качестве одного из моих полей. Когда я получаю ответ от контроллера, я всегда получаю его в этом формате {"field":{"present":true}}
(как показано в этом вопросе ).
По сути, я настроил bean-компонент RestTemplate следующим образом:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</list>
</property>
</bean>
И я хотел бы добавить модуль Jdk8Module как часть процесса сериализации. Я заметил, что есть конструктор MappingJackson2HttpMessageConverter(ObjectMapper mapper)
, который принимает ObjectMapper, и я подумываю о создании bean-компонента ObjectMapper, в котором будет зарегистрирован Jdk8Module (с помощью открытого метода registerModule(Module module)
, найденного в классе ObjectMapper), поэтому я могупередайте этот модуль следующим образом:
<bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<constructor-arg name="objectMapper" ref="ObjectMapperWithJDK8Bean"></constructor-arg>
</bean>
</list>
</property>
</bean>
<bean id="ObjectMapperWithJDK8Bean" class="com.fasterxml.jackson.databind.ObjectMapper">
* Pass in com.fasterxml.jackson.datatype.jdk8.Jdk8Module here via the method *
</bean>
Но проблема, стоящая перед ним на данный момент, заключается в том, как вызвать метод registModule
из файла xml при создании компонента? Я использую Spring 4.1. Я новичок в весне, так что это довольно сложно!