Heim >Java >javaLernprogramm >Wie kann ich verhindern, dass Jackson im Frühjahr nicht abgerufene Lazy-Attribute serialisiert?

Wie kann ich verhindern, dass Jackson im Frühjahr nicht abgerufene Lazy-Attribute serialisiert?

Barbara Streisand
Barbara StreisandOriginal
2024-11-28 20:16:15250Durchsuche

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

Behebung des Serialisierungsproblems bei Lazy-Objekten mit Jackson

Ihr Wunsch, Jackson daran zu hindern, nicht abgerufene Lazy-Attribute zu serialisieren, hat eine einfache Lösung. Dank des wertvollen Inputs von indybee haben wir eine Lösung gefunden, die mit Ihren aktuellen Spring-, Hibernate- und Jackson-Versionen funktioniert.

Spring-Versionen 3.1.2 und höher führen einen erweiterten MappingJackson2HttpMessageConverter ein, der die Funktionalität von enthält benutzerdefinierter Konverter, der im Spring 3.1-Tutorial erwähnt wird. Um diesen Konverter zu nutzen, erweitern Sie Ihre Spring-Konfigurationsklasse von WebMvcConfigurerAdapter und überschreiben Sie die Methode configureMessageConverters.

Fügen Sie innerhalb der Methode configureMessageConverters den MappingJackson2HttpMessageConverter mit dem registrierten Hibernate4Module hinzu. In der Java-Konfiguration könnte dies wie folgt aussehen:

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    converters.add(jacksonMessageConverter());
    super.configureMessageConverters(converters);
}

Erstellen Sie für eine XML-Konfiguration einen benutzerdefinierten HibernateAwareObjectMapper, wie im Tutorial vorgeschlagen:

<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>

Diese Lösung integriert das Hibernate4Module nahtlos in die Standardeinstellung von Spring Nachrichtenkonverter, der sicherstellt, dass nicht abgerufene Lazy-Objekte nicht von Jackson serialisiert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich verhindern, dass Jackson im Frühjahr nicht abgerufene Lazy-Attribute serialisiert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn