I was unreasonable enough to went into configuring spring beans via annotations and not pure xml beans and now I'm facing the consequences.
I configure REST channels using
<mvc:annotation-driven />
Now I want simply configure the MappingJacksonHttpMessageConverter
to output to JSON only this fields that have non-null values. I've tried the following:
<bean id="jsonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="prefixJson" value="false" />
<property name="supportedMediaTypes" value="application/json" />
<property name="objectMapper">
<bean class="org.codehaus.jackson.map.ObjectMapper">
<property name="serializationInclusion" value="NON_NULL"/>
</bean>
</property>
</bean>
The beans gets created, but another instance of converter is created and used in channels. So I've tried the way with @Configuration
and @Bean
described in this Stackoverflow question, but still json serialization uses its own configuration.
Finally I've tried to inject the mapper via
@Autowired
private MappingJacksonHttpMessageConverter jacksonConverter;
but I've ended with NoSuchBeanDefinitionException
. So now I'm out of options and therefore I'm asking for any ideas here. How to controll and configure the mapper used by framework?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…