java对象序列提取_java – 避免Jackson序列化在非提取惰性对象

我终于找到了解决方案!感谢indybee给我一个线索。

教程Spring 3.1, Hibernate 4 and Jackson-Module-Hibernate有一个很好的解决方案为Spring 3.1和更早版本。但是由于3.1.2版Spring有自己的MappingJackson2HttpMessageConverter,其功能与教程中几乎相同,所以我们不需要创建这个自定义的HTTPMessageConverter。

使用javaconfig我们不需要创建HibernateAwareObjectMapper,我们只需要将Hibernate4Module添加到Spring已经拥有的默认MappingJackson2HttpMessageConverter,并将其添加到应用程序的HttpMessageConverters,因此我们需要:

>从WebMvcConfigurerAdapter扩展我们的spring配置类,并覆盖方法configureMessageConverters。

>在该方法添加MappingJackson2HttpMessageConverter与在previus方法中注册的Hibernate4Module。

我们的config类应该看起来像这样:

@Configuration

@EnableWebMvc

public class MyConfigClass extends WebMvcConfigurerAdapter{

//More configuration....

/* Here we register the Hibernate4Module into an ObjectMapper, then set this custom-configured ObjectMapper

* to the MessageConverter and return it to be added to the HttpMessageConverters of our application*/

public MappingJackson2HttpMessageConverter jacksonMessageConverter(){

MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();

ObjectMapper mapper = new ObjectMapper();

//Registering Hibernate4Module to support lazy objects

mapper.registerModule(new Hibernate4Module());

messageConverter.setObjectMapper(mapper);

return messageConverter;

}

@Override

public void configureMessageConverters(List> converters) {

//Here we add our custom-configured HttpMessageConverter

converters.add(jacksonMessageConverter());

super.configureMessageConverters(converters);

}

//More configuration....

}

如果你有一个xml配置,你不需要创建自己的MappingJackson2HttpMessageConverter,但你需要创建在教程(HibernateAwareObjectMapper)中出现的个性化映射器,所以你的xml配置应该看起来像这样:

希望这个答案是可以理解的,并帮助有人找到这个问题的解决方案,任何问题,随时问!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值