使用Jackson 解決延遲物件序列化問題
您希望阻止Jackson 序列化未取得的延遲物件的願望有一個簡單的解決方案方案。感謝 indybee 提供的寶貴意見,我們發現了一個適用於您目前的 Spring、Hibernate 和 Jackson 版本的解決方案。
Spring 版本 3.1.2 及更高版本引入了增強的 MappingJackson2HttpMessageConverter,它合併了以下功能: Spring 3.1教程中提到的自訂轉換器。若要利用此轉換器,請從 WebMvcConfigurerAdapter 擴充 Spring 設定類別並重寫 configureMessageConverters 方法。
在 configureMessageConverters 方法中,新增註冊了 Hibernate4Module 的 MappingJackson2HttpMessageConverter。在Java 配置中,這可能類似於:
@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { converters.add(jacksonMessageConverter()); super.configureMessageConverters(converters); }
對於XML 配置,請按照教程中的建議建立自訂HibernateAwareObjectMapper:
<mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.pastelstudios.json.HibernateAwareObjectMapper" /> </property> </bean> </mvc:message-converters>
此解決方案將Hibernate4Module 與此解決方案的預設值無縫整合訊息轉換器,確保未取得的惰性物件不會被Jackson 序列化。
以上是如何防止 Jackson 在 Spring 中序列化未取得的惰性屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!