我太过不理智,使用注解而不是纯xml来配置Spring bean,现在我面临着后果。
我使用以下方式配置REST通道:
<mvc:annotation-driven />
现在我想简单地配置MappingJacksonHttpMessageConverter
,使其仅输出具有非空值的字段到JSON。我尝试了以下方法:
<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>
这些 bean 被创建了,但是另一个转换器实例被创建并在通道中使用。因此,我尝试了 这个 Stackoverflow 问题 中描述的使用 @Configuration
和 @Bean
的方法,但是 JSON 序列化仍然使用自己的配置。
最后,我尝试通过注入 mapper 来解决问题。
@Autowired
private MappingJacksonHttpMessageConverter jacksonConverter;
但现在我遇到了NoSuchBeanDefinitionException
的问题。所以我已经没有其他选择,现在想在这里询问一些想法。如何控制和配置框架使用的映射器?
jsonHttpMessageConverter
,如@Autowired private MappingJacksonHttpMessageConverter jsonHttpMessageConverter;
。 - Ahamed Mustafa M