>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을 Spring의 기본값과 완벽하게 통합합니다. 가져오지 않은 게으른 개체가 Jackson에 의해 직렬화되지 않도록 하는 메시지 변환기입니다.

위 내용은 Jackson이 Spring에서 가져오지 않은 게으른 속성을 직렬화하는 것을 어떻게 방지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.