Commit 301a2ebd by qiuweili123

modify

parent f27081bd
......@@ -8,7 +8,6 @@ import com.secoo.mall.common.util.response.ResponseUtil;
import com.secoo.mall.web.annotation.ApiController;
import com.secoo.mall.web.annotation.ApiIgnoreJson;
import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContext;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.MethodParameter;
import org.springframework.core.annotation.AnnotationUtils;
......@@ -21,7 +20,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import javax.annotation.Resource;
import java.util.Locale;
@RestControllerAdvice(annotations = ApiController.class)
public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
......@@ -36,7 +34,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
@ExceptionHandler(ParameterException.class)
public Object parameterExceptionHandler(ParameterException e) {
String msg=getMsg(e);
String msg = getMsg(e);
LoggerUtil.info(msg);
return ResponseUtil.getFailResponse(e.getCode(), msg);
}
......@@ -54,10 +52,11 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
@Override
public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
return ResponseUtil.getSuccessResponse(o);
return ResponseUtil.getSuccessResponse(o);
}
private String getMsg(BusinessException e) {
LoggerUtil.info("local:{}", LocaleContextHolder.getLocale());
return messageSource.getMessage(e.getMsg(), e.getArgs(), LocaleContextHolder.getLocale());
}
}
package com.secoo.mall.web.config;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.secoo.mall.web.resolver.DefaultLocaleResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import java.text.SimpleDateFormat;
import java.util.Locale;
/**
* 多语言配置
*/
@Configuration
public class MultLangConfig implements WebMvcConfigurer {
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("i18n/message");
return messageSource;
}
@Bean(name = "localeResolver")
public LocaleResolver localeCookieResolver() {
DefaultLocaleResolver localeResolver = new DefaultLocaleResolver();
localeResolver.setCookieName("language");
//设置默认区域
localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
localeResolver.setCookieMaxAge(3600);//设置cookie有效期.
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
}
}
package com.secoo.mall.web.config;
import com.secoo.mall.web.resolver.DefaultLocaleResolver;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import java.util.Locale;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class WebConfig implements WebMvcConfigurer {
public class WebConfig {
@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("i18n/message");
return messageSource;
}
@Bean(name = "localeResolver")
public LocaleResolver localeCookieResolver() {
DefaultLocaleResolver localeResolver = new DefaultLocaleResolver();
localeResolver.setCookieName("language");
//设置默认区域
localeResolver.setDefaultLocale(Locale.SIMPLIFIED_CHINESE);
localeResolver.setCookieMaxAge(3600);//设置cookie有效期.
return localeResolver;
}
@Bean
public LocaleChangeInterceptor localeChangeInterceptor() {
LocaleChangeInterceptor lci = new LocaleChangeInterceptor();
// 参数名
lci.setParamName("lang");
return lci;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(localeChangeInterceptor());
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
return new HttpMessageConverters((HttpMessageConverter<?>) fastJsonHttpMessageConverter);
}
}
......@@ -7,6 +7,9 @@ import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import javax.servlet.http.HttpServletRequest;
import java.util.Locale;
/**
* 多语言解析器
*/
public class DefaultLocaleResolver extends CookieLocaleResolver {
@Nullable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment