78 lines
3.2 KiB
Java
78 lines
3.2 KiB
Java
package io.config;
|
|
|
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
|
import io.common.interceptor.AuthorizationInterceptor;
|
|
import io.common.resolver.LoginUserHandlerMethodArgumentResolver;
|
|
import io.common.utils.DateUtils;
|
|
import jakarta.annotation.Resource;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
|
|
import org.springframework.http.converter.HttpMessageConverter;
|
|
import org.springframework.http.converter.ResourceHttpMessageConverter;
|
|
import org.springframework.http.converter.StringHttpMessageConverter;
|
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
|
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
|
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.List;
|
|
import java.util.TimeZone;
|
|
|
|
/**
|
|
* MVC配置
|
|
*
|
|
|
|
*/
|
|
@Configuration
|
|
public class WebMvcConfig implements WebMvcConfigurer {
|
|
@Resource
|
|
private AuthorizationInterceptor authorizationInterceptor;
|
|
@Resource
|
|
private LoginUserHandlerMethodArgumentResolver loginUserHandlerMethodArgumentResolver;
|
|
|
|
@Override
|
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
registry.addInterceptor(authorizationInterceptor).addPathPatterns("/api/**");
|
|
}
|
|
|
|
@Override
|
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
|
|
argumentResolvers.add(loginUserHandlerMethodArgumentResolver);
|
|
}
|
|
|
|
@Override
|
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
|
converters.add(new ByteArrayHttpMessageConverter());
|
|
converters.add(new StringHttpMessageConverter());
|
|
converters.add(new ResourceHttpMessageConverter());
|
|
converters.add(new AllEncompassingFormHttpMessageConverter());
|
|
converters.add(new StringHttpMessageConverter());
|
|
converters.add(jackson2HttpMessageConverter());
|
|
}
|
|
|
|
@Bean
|
|
public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() {
|
|
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
|
|
ObjectMapper mapper = new ObjectMapper();
|
|
|
|
//日期格式转换
|
|
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
mapper.setDateFormat(new SimpleDateFormat(DateUtils.DATE_TIME_PATTERN));
|
|
mapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
|
|
|
|
//Long类型转String类型
|
|
SimpleModule simpleModule = new SimpleModule();
|
|
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
|
|
simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
|
|
mapper.registerModule(simpleModule);
|
|
|
|
converter.setObjectMapper(mapper);
|
|
return converter;
|
|
}
|
|
}
|