J'utilise le démarrage à ressort et je veux personnaliser l'objetMapper créé. p>
Ce que je veux faire, c'est être capable de sérialiser des objets qui n'ont pas de getter ou de setters. Avant que cela puisse être fait en mettant JSONAUTODECTECT.Visibilité.Touille sur l'ObjectMapper. P>
Mais comment puis-je activer cette fonctionnalité à l'aide du haricot Jackson2ObjectMapperBuilder, je expose actuellement? p>
3 Réponses :
Vous pouvez utiliser un jackson2ObjectMapperbuilder code> la sous-classe qui remplace la méthode
configuration (objet> Configurer (ObjectMapper) code>:
L'application ne parvient pas à commencer par Boot 1.4.0 et ce causé par: java.lang.nullpointereException: null à org.springframework.data.rest.core.uritoentityconverter.
Regardant la ligne avant que ... persistéentalité ,?> entité = entités.getpersistententité (bruttype); code> où
bruttype code> est code> jsondeSerializer code>. ..
Il semble que de définir jackson2objectmapperbuilder code> comme sous-classe
Cette méthode désactivera tout jackson2ObjectMapperbuilderCustomizer code> appliqué dans l'original
jackson2Objectmapperbuilder code> méthode de haricot ( jacksonautoconfiguration.java i>)
Si vous souhaitez conserver l'ObjectMapper configurable via le Spring.Jackson. * Propriétés fournies par Spring Boot fournit, alors vous feriez mieux de ne pas définir votre propre haricot Jackson2ObjectMAPPerbuilder (Vérifiez JacksonObjectMapperbuilder dans la classe JacksonAutoconfiguration pour plus de détails).
Qu'est-ce que vous avez peut faire à la place est ceci: p>
Je devais exclure HyperMediAutoconfiguration de cette solution pour travailler, voir Dépendance SpringFox brisant mon Contexte de printemps
Je passe une journée à jouer avec différents contextes. Donc, je parviens à le travailler (1.3.2.Release) lorsque:
@Configuration Code> Classe de configuration annotée (non étendue à partir de WebMVCConfigureAdapter code>) Li>
- Je n'ai pas
@enablewebmvc code> li>
ul> alors jackson2objectmapperbuilder objetPerbuilder code> solution est
travail, mais printemps.jackson.serialization.indent_output: true code> dans les propriétés ignorés. p> enfin, j'ai fini avec p>
@Autowired(required = true)
public void configeJackson(ObjectMapper objectMapper) {
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE)
.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
}