首頁 >Java >java教程 >如何防止 Jackson 在 Spring 中序列化未取得的惰性屬性?

如何防止 Jackson 在 Spring 中序列化未取得的惰性屬性?

Barbara Streisand
Barbara Streisand原創
2024-11-28 20:16:15157瀏覽

How Can I Prevent Jackson from Serializing Unfetched Lazy Attributes in Spring?

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn