package com.gblfy.office.config;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.module.SimpleModule;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* SpringMvc通用配置
*
* @author gblfy
* @date 2022-04-06
*/
@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {
@Value("${local.path}")
private String path;
/**
* 文件上传路径配置
*
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/** 本地文件上传路径 */
registry.addResourceHandler("/f/**")
.addResourceLocations("file:" + path);
}
/**
* 跨域配置
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedHeaders(CorsConfiguration.ALL)
.allowedMethods(CorsConfiguration.ALL)
.allowCredentials(true)
.maxAge(3600); // 1小时内不需要再预检(发OPTIONS请求)
}
// 统一注解,解决前后端交互Long类型精度丢失的问题
@Bean
public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build();
//全局配置序列化返回json处理
SimpleModule simpleModule = new SimpleModule();
//json Long ==>String
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
objectMapper.registerModule(simpleModule);
return objectMapper;
}
}
application.yml
server:
port: 80
local:
path: D:/ht/outfile
本文介绍了一个SpringMvc配置类的具体实现,包括文件上传路径配置、跨域配置及解决前后端交互中Long类型精度丢失的问题。通过自定义配置实现更好的前后端交互效果。
339

被折叠的 条评论
为什么被折叠?



