mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-09-29 10:50:33 +00:00
Update Spring MVC message converters documentation
Closes gh-35166
This commit is contained in:
+18
-13
@@ -17,15 +17,15 @@
|
||||
package org.springframework.docs.web.webmvc.mvcconfig.mvcconfigmessageconverters;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule;
|
||||
import tools.jackson.dataformat.xml.XmlMapper;
|
||||
import tools.jackson.databind.SerializationFeature;
|
||||
import tools.jackson.databind.json.JsonMapper;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
|
||||
import org.springframework.http.converter.HttpMessageConverters;
|
||||
import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter;
|
||||
import org.springframework.http.converter.xml.JacksonXmlHttpMessageConverter;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
@SuppressWarnings("removal")
|
||||
@@ -34,13 +34,18 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
public class WebConfiguration implements WebMvcConfigurer {
|
||||
|
||||
@Override
|
||||
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||
Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
|
||||
.indentOutput(true)
|
||||
.dateFormat(new SimpleDateFormat("yyyy-MM-dd"))
|
||||
.modulesToInstall(new ParameterNamesModule());
|
||||
converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
|
||||
converters.add(new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build()));
|
||||
public void configureMessageConverters(HttpMessageConverters.Builder builder) {
|
||||
JsonMapper jsonMapper = JsonMapper.builder()
|
||||
.findAndAddModules()
|
||||
.enable(SerializationFeature.INDENT_OUTPUT)
|
||||
.defaultDateFormat(new SimpleDateFormat("yyyy-MM-dd"))
|
||||
.build();
|
||||
XmlMapper xmlMapper = XmlMapper.builder()
|
||||
.findAndAddModules()
|
||||
.defaultUseWrapper(false)
|
||||
.build();
|
||||
builder.jsonMessageConverter(new JacksonJsonHttpMessageConverter(jsonMapper))
|
||||
.xmlMessageConverter(new JacksonXmlHttpMessageConverter(xmlMapper));
|
||||
}
|
||||
}
|
||||
// end::snippet[]
|
||||
|
||||
+18
-12
@@ -2,26 +2,32 @@
|
||||
|
||||
package org.springframework.docs.web.webmvc.mvcconfig.mvcconfigmessageconverters
|
||||
|
||||
import com.fasterxml.jackson.module.paramnames.ParameterNamesModule
|
||||
import org.springframework.context.annotation.Configuration
|
||||
import org.springframework.http.converter.HttpMessageConverter
|
||||
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder
|
||||
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
|
||||
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter
|
||||
import org.springframework.http.converter.HttpMessageConverters
|
||||
import org.springframework.http.converter.json.JacksonJsonHttpMessageConverter
|
||||
import org.springframework.http.converter.xml.JacksonXmlHttpMessageConverter
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer
|
||||
import tools.jackson.databind.SerializationFeature
|
||||
import tools.jackson.databind.json.JsonMapper
|
||||
import tools.jackson.dataformat.xml.XmlMapper
|
||||
import java.text.SimpleDateFormat
|
||||
|
||||
// tag::snippet[]
|
||||
@Configuration
|
||||
class WebConfiguration : WebMvcConfigurer {
|
||||
|
||||
override fun configureMessageConverters(converters: MutableList<HttpMessageConverter<*>>) {
|
||||
val builder = Jackson2ObjectMapperBuilder()
|
||||
.indentOutput(true)
|
||||
.dateFormat(SimpleDateFormat("yyyy-MM-dd"))
|
||||
.modulesToInstall(ParameterNamesModule())
|
||||
converters.add(MappingJackson2HttpMessageConverter(builder.build()))
|
||||
converters.add(MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build()))
|
||||
override fun configureMessageConverters(builder: HttpMessageConverters.Builder) {
|
||||
val jsonMapper = JsonMapper.builder()
|
||||
.findAndAddModules()
|
||||
.enable(SerializationFeature.INDENT_OUTPUT)
|
||||
.defaultDateFormat(SimpleDateFormat("yyyy-MM-dd"))
|
||||
.build()
|
||||
val xmlMapper = XmlMapper.builder()
|
||||
.findAndAddModules()
|
||||
.defaultUseWrapper(false)
|
||||
.build()
|
||||
builder.jsonMessageConverter(JacksonJsonHttpMessageConverter(jsonMapper))
|
||||
.xmlMessageConverter(JacksonXmlHttpMessageConverter(xmlMapper))
|
||||
}
|
||||
}
|
||||
// end::snippet[]
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||
xmlns:mvc="http://www.springframework.org/schema/mvc"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="
|
||||
http://www.springframework.org/schema/beans
|
||||
https://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/mvc
|
||||
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
|
||||
|
||||
<!-- tag::snippet[] -->
|
||||
<mvc:annotation-driven>
|
||||
<mvc:message-converters>
|
||||
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
|
||||
<property name="objectMapper" ref="objectMapper"/>
|
||||
</bean>
|
||||
<bean class="org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter">
|
||||
<property name="objectMapper" ref="xmlMapper"/>
|
||||
</bean>
|
||||
</mvc:message-converters>
|
||||
</mvc:annotation-driven>
|
||||
|
||||
<bean id="objectMapper" class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean"
|
||||
p:indentOutput="true"
|
||||
p:simpleDateFormat="yyyy-MM-dd"
|
||||
p:modulesToInstall="com.fasterxml.jackson.module.paramnames.ParameterNamesModule"/>
|
||||
|
||||
<bean id="xmlMapper" parent="objectMapper" p:createXmlMapper="true"/>
|
||||
<!-- end::snippet[] -->
|
||||
</beans>
|
||||
Reference in New Issue
Block a user