Commit 0ed2cc02 by QIANGLU

Merge branch 'dev'

# Conflicts:
#	pom.xml
parents fd113e95 f5ff8b9a
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
1、增加monitor traceId监控模块 1、增加monitor traceId监控模块
2、增加防灾冗余 2、增加防灾冗余
3、优化文件结构 3、优化文件结构
4、增加对controller返回null响应增强
1.0.2.RELEASE 1.0.2.RELEASE
......
...@@ -35,5 +35,9 @@ ...@@ -35,5 +35,9 @@
<artifactId>dubbo</artifactId> <artifactId>dubbo</artifactId>
<version>2.7.2</version> <version>2.7.2</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
package com.secoo.matrix.monitor.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MonitorAutoConfiguration {
}
package com.secoo.matrix.monitor.filter;
import com.secoo.matrix.monitor.utils.TraceIDUtils;
import javax.servlet.*;
import java.io.IOException;
/**
* @author qianglu
*/
public class HttpTraceFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try {
TraceIDUtils.continueTraceID();
filterChain.doFilter(servletRequest,servletResponse);
} catch (Exception e) {
}
}
@Override
public void destroy() {
}
}
package com.secoo.matrix.monitor.rcp.filter; package com.secoo.matrix.monitor.filter;
import com.secoo.matrix.monitor.constant.MonitorConstant; import com.secoo.matrix.monitor.constant.MonitorConstant;
import com.secoo.matrix.monitor.utils.TraceIDUtils; import com.secoo.matrix.monitor.utils.TraceIDUtils;
......
package com.secoo.matrix.monitor.http.intercept; package com.secoo.matrix.monitor.http;
import com.secoo.matrix.monitor.utils.TraceIDUtils; import com.secoo.matrix.monitor.utils.TraceIDUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
......
logFilter=com.secoo.matrix.monitor.rcp.filter.LoggerFilter #logFilter=com.secoo.matrix.monitor.filter.LoggerFilter
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.secoo.matrix.monitor.config.MonitorAutoConfiguration
\ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>matrix</artifactId> <artifactId>matrix</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
...@@ -20,9 +20,10 @@ ...@@ -20,9 +20,10 @@
<module>dubbo-starter</module> <module>dubbo-starter</module>
<module>web-starter</module> <module>web-starter</module>
<module>openfeign-starter</module> <module>openfeign-starter</module>
<module>monitor-starter</module>
<module>rocketmq-starter</module> <module>rocketmq-starter</module>
<module>config-starter</module> <module>config-starter</module>
<module>monitor-starter</module>
<module>config-starter</module>
</modules> </modules>
<parent> <parent>
...@@ -58,7 +59,9 @@ ...@@ -58,7 +59,9 @@
</profile> </profile>
<profile> <profile>
<id>test</id> <id>test</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties> <properties>
<ver_type>-SNAPSHOT</ver_type> <ver_type>-SNAPSHOT</ver_type>
<repo_id>secoo-test</repo_id> <repo_id>secoo-test</repo_id>
...@@ -75,9 +78,6 @@ ...@@ -75,9 +78,6 @@
</profile> </profile>
<profile> <profile>
<id>pro</id> <id>pro</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties> <properties>
<ver_type>.RELEASE</ver_type> <ver_type>.RELEASE</ver_type>
<repo_id>secoo-pro</repo_id> <repo_id>secoo-pro</repo_id>
...@@ -99,62 +99,62 @@ ...@@ -99,62 +99,62 @@
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>monitor-starter</artifactId> <artifactId>monitor-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>common-core</artifactId> <artifactId>common-core</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>config-starter</artifactId> <artifactId>config-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>common-util</artifactId> <artifactId>common-util</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>redis-starter</artifactId> <artifactId>redis-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>mybatis-starter</artifactId> <artifactId>mybatis-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>mongodb-starter</artifactId> <artifactId>mongodb-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>elasticsearch-starter</artifactId> <artifactId>elasticsearch-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>dubbo-starter</artifactId> <artifactId>dubbo-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>web-starter</artifactId> <artifactId>web-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>rocketmq-starter</artifactId> <artifactId>rocketmq-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.secoo.mall</groupId> <groupId>com.secoo.mall</groupId>
<artifactId>openfeign-starter</artifactId> <artifactId>openfeign-starter</artifactId>
<version>1.0.3.RELEASE</version> <version>1.0.3-DEV-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -36,7 +36,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> { ...@@ -36,7 +36,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
@ExceptionHandler(ParameterException.class) @ExceptionHandler(ParameterException.class)
public Object parameterExceptionHandler(ParameterException e) { public Object parameterExceptionHandler(ParameterException e) {
String msg=getMsg(e); String msg = getMsg(e);
LoggerUtil.info(msg); LoggerUtil.info(msg);
return ResponseUtil.getFailResponse(e.getCode(), msg); return ResponseUtil.getFailResponse(e.getCode(), msg);
} }
...@@ -54,7 +54,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> { ...@@ -54,7 +54,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
@Override @Override
public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { 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) { private String getMsg(BusinessException e) {
......
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; 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.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.http.MediaType;
import org.springframework.web.servlet.LocaleResolver; import org.springframework.http.converter.HttpMessageConverter;
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.util.Locale; import java.util.ArrayList;
import java.util.List;
@Configuration @Configuration
public class WebConfig implements WebMvcConfigurer { public class WebConfig {
@Bean @Bean
public ResourceBundleMessageSource messageSource() { public HttpMessageConverters fastJsonHttpMessageConverters() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
messageSource.setBasename("i18n/message"); FastJsonConfig fastJsonConfig = new FastJsonConfig();
return messageSource; fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue);
} List<MediaType> fastMediaTypes = new ArrayList<>();
fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);
@Bean(name = "localeResolver") fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
public LocaleResolver localeCookieResolver() { fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
DefaultLocaleResolver localeResolver = new DefaultLocaleResolver();
localeResolver.setCookieName("language"); return new HttpMessageConverters((HttpMessageConverter<?>) fastJsonHttpMessageConverter);
//设置默认区域
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());
} }
} }
...@@ -7,6 +7,9 @@ import org.springframework.web.servlet.i18n.CookieLocaleResolver; ...@@ -7,6 +7,9 @@ import org.springframework.web.servlet.i18n.CookieLocaleResolver;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Locale; import java.util.Locale;
/**
* 多语言解析器
*/
public class DefaultLocaleResolver extends CookieLocaleResolver { public class DefaultLocaleResolver extends CookieLocaleResolver {
@Nullable @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