Convertir le message de requête en objet Java
Convertir les objets Java sont convertis en messages de réponse Collection MediaType prise en charge (telle que : text/html, text/plain, application/json)
read : Convertir le format des données de la requête (appelé lorsque la valeur de retour de la méthode canRead est vraie)
canWrite : Déterminer si cela peut être écrit (réponse)
write : Convertir les données de réponse au format (appelé lorsque la valeur de retour de la méthode canWrite est vraie) #🎜 🎜#
SpringMVC configurera automatiquement certaines méthodes HttpMessageConverter (addDefaultHttpMessageConverters de la classe WebMvcConfigurationSupport) au démarrage
# 🎜🎜 #Le code source est le suivant :protected final void addDefaultHttpMessageConverters(List<HttpMessageConverter<?>> messageConverters) { messageConverters.add(new ByteArrayHttpMessageConverter()); messageConverters.add(new StringHttpMessageConverter()); messageConverters.add(new ResourceHttpMessageConverter()); messageConverters.add(new ResourceRegionHttpMessageConverter()); try { messageConverters.add(new SourceHttpMessageConverter<>()); } catch (Throwable ex) { // Ignore when no TransformerFactory implementation is available... } messageConverters.add(new AllEncompassingFormHttpMessageConverter()); if (romePresent) { messageConverters.add(new AtomFeedHttpMessageConverter()); messageConverters.add(new RssChannelHttpMessageConverter()); } if (jackson2XmlPresent) { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml(); if (this.applicationContext != null) { builder.applicationContext(this.applicationContext); } messageConverters.add(new MappingJackson2XmlHttpMessageConverter(builder.build())); } else if (jaxb2Present) { messageConverters.add(new Jaxb2RootElementHttpMessageConverter()); } if (jackson2Present) { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.json(); if (this.applicationContext != null) { builder.applicationContext(this.applicationContext); } messageConverters.add(new MappingJackson2HttpMessageConverter(builder.build())); } else if (gsonPresent) { messageConverters.add(new GsonHttpMessageConverter()); } else if (jsonbPresent) { messageConverters.add(new JsonbHttpMessageConverter()); } if (jackson2SmilePresent) { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.smile(); if (this.applicationContext != null) { builder.applicationContext(this.applicationContext); } messageConverters.add(new MappingJackson2SmileHttpMessageConverter(builder.build())); } if (jackson2CborPresent) { Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.cbor(); if (this.applicationContext != null) { builder.applicationContext(this.applicationContext); } messageConverters.add(new MappingJackson2CborHttpMessageConverter(builder.build())); } }
Description # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # MappingJackson2httpMessageConverter # 🎜🎜 ## 🎜🎜 # Responsable de la lecture et de l'écriture de données de format JSON (en utilisant Jackson) # 🎜🎜 # # #
AllEncompassingFormHttpMessageConverterResponsable de la lecture et de l'écriture des données du formulaire #
Responsable de la lecture et de l'écriture des données au format binaire | |
---|---|
# 🎜🎜# | ResourceHttpMessageConverterResponsable de la lecture et de l'écriture des données du fichier de ressources |
SourceHttpMessageConverter | Responsable pour lire et écrire des données de ressources |
Notes#🎜🎜 # | Le système dispose d'un ensemble de convertisseurs de messages configurés par défaut. |
Pour qu'un convertisseur de messages personnalisé prenne effet, il doit être placé devant les convertisseurs de messages du même type dans la collection. Pour la raison, veuillez vous référer au deuxième point. | Réflexion : Étant donné que le convertisseur de message personnalisé doit être placé devant le même type de convertisseur de message dans la collection, le convertisseur de message original de la collection peut-il être directement modifié pour obtenir l'effet personnalisé ? pas besoin d'en rajouter un autre (pas encore étudié). |
La méthode WebMvcConfigurer.configureMessageConverters remplacera la Ensemble de convertisseurs de messages par défaut# 🎜🎜# | |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!