Gibt es eine globale Konfiguration im Frühjahr, die Feder FAIL_ON_EMPTY_BEANS für alle mit @ResponseBody annotierten Controller deaktivieren kann?Spring und jackson, wie FAIL_ON_EMPTY_BEANS durch @ResponseBody deaktivieren
Antwort
Sie können Ihr Objekt Mapper konfigurieren, wenn configureMessageConverters
@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
MappingJackson2HttpMessageConverter converter =
new MappingJackson2HttpMessageConverter(mapper);
return converter;
}
Konfiguration Wenn Sie wissen möchten, wie in Ihrer Anwendung genau das zu tun, aktualisieren Sie bitte Ihre Frage mit Konfigurationsdateien (xml oder Java-configs).
Hier ist eine gute article, wie Sie Nachrichtenkonverter anpassen.
Edit: Wenn Sie XML anstelle von Java configs verwenden, können Sie eine benutzerdefinierte MyJsonMapper
Klasse erweitern ObjectMapper
mit benutzerdefinierten Konfiguration erstellen und verwenden sie dann als
public class MyJsonMapper extends ObjectMapper {
public MyJsonMapper() {
this.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
}
}
In Ihrem XML folgt:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper" ref="jacksonObjectMapper" />
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="jacksonObjectMapper" class="com.mycompany.example.MyJsonMapper" >
Wenn Sie Spring Boot verwenden, können Sie die folgende Eigenschaft in der Datei application.properties festlegen.
spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false
Dank @DKroot für seinen wertvollen Beitrag hinzu. Aber ich glaube, das sollte eine eigene Antwort für andere sein.
Guter Tipp, aber Vorsicht, es wird nicht mit HAL arbeiten, da Spring HATEOAS seinen eigenen Objekt-Mapper erstellt. https://github.com/spring-projects/spring-hateoas/issues/333 – Jannik
- 1. jackson disable fail_on_empty_beans
- 2. Frühling @ResponseBody Jackson JsonSerializer mit JodaTime
- 3. Spring MVC: Redirect in @ResponseBody
- 4. Spring MVC - Aufrufmethoden in @ResponseBody
- 5. Spring Boot @ResponseBody serialisiert keine Entity ID
- 6. Spring 3.2 und Jackson 2: benutzerdefinierte Objekt Mapper hinzufügen
- 7. Wie kann man jackson SerializationFeature.WRAP_ROOT_VALUE deaktivieren/aktivieren?
- 8. Jackson 2.0 mit Spring 3.1
- 9. Auto CSV Header mit Spring MVC und jackson-dataformat-csv
- 10. Spring @ResponseBody erzeugt einen ungültigen JSON für primitive Typen
- 11. Spring MVC - AJAX/JSON - ResponseBody -> Aufruf eines Dienstes
- 12. wie Spring Form Checkbox deaktivieren?
- 13. Wie JSON-Daten aus Feder-Controller zurückzukehren @ResponseBody
- 14. Spring MVC: deaktivieren DefaultAnnotationHandlerMapping
- 15. Spring 4.2.3 und fasterxml Jackson 2.7.0 sind inkompatibel
- 16. Spring Boot Jackson dynamische teilweise Antwort
- 17. @JsonView nicht filtern Eigenschaften (Spring 4.1.0.RC2, Jackson 2.3.2)
- 18. Spring Boot Jackson Mappings funktionieren nicht
- 19. Kotlin-Datenklasse zu JSON mit Spring/Jackson
- 20. Jackson vs Spring HATEOAS vs Polymorphismus
- 21. @RequestBody und @ResponseBody Anmerkungen im Frühjahr
- 22. Spring Controller Return-Ansicht und JSON Together
- 23. XMLHTTPRequest responseBody vs responseText
- 24. Wie ErrorPageFilter in Spring Boot deaktivieren?
- 25. Spring Data Rest: Sicherheit durch Projektion
- 26. Wie eine ausführliche Zeichenfolge mit ResponseBody einschließlich Zeilenvorschubzeichen und Tab-Zeichen übergeben
- 27. Spring JMS Auto-Konfiguration in Spring Boot-Anwendung deaktivieren
- 28. @ResponseBody, um verschiedene Antwortformat zu wählen
- 29. ExceptionHandler mit ResponseBody: set ResponseStatus in Methodenkörper
- 30. Atmosphere Framework Websocket gibt leer responseBody zurück
Haben Sie ein XML-Beispiel? danke – tgkprog
Bitte bearbeitete Antwort. – vtor
Wenn Sie Spring Boot verwenden, können Sie dies tun: 'spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false' – DKroot