1、实现思路
继承WebMvcConfigurationSupport类重写configureMessageConverters方法,自定义HttpMessageConverter并设置响应编码为UTF-8
2、示例代码
package com.xiaobai.conf;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.FormHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.scheduling.concurrent.ConcurrentTaskExecutor;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.nio.charset.Charset;
import java.util.List;
import java.util.concurrent.Executors;
/**
* 跨域配置
*/
@Configuration
public class CorsConfigurer extends WebMvcConfigurationSupport {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")//允许跨域的域名,可以用*表示允许任何域名使用
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)//带上cookie信息
.maxAge(3600)//maxAge(3600)表明在3600秒内,不需要再发送预检验请求
.allowedHeaders("*");
}
/**
* 消息转换器设置
* @param converters
*/
@Override
protected void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(responseBodyConverter());
addDefaultHttpMessageConverters(converters);
}
/**
* 自定义HttpMessageConverter,设置响应编码为UTF-8
* @return
*/
@Bean
public HttpMessageConverter<String> responseBodyConverter() {
return new StringHttpMessageConverter(Charset.forName("UTF-8"));
}
}