Commit ea793295 by qiuweili123

add rokcetmq

parent 13845a29
...@@ -6,6 +6,7 @@ public interface CommonConstant { ...@@ -6,6 +6,7 @@ public interface CommonConstant {
Integer CODE = 0; Integer CODE = 0;
String MSG = "success"; String MSG = "success";
} }
interface Env { interface Env {
String LOCAL = "local"; String LOCAL = "local";
String DEV = "dev"; String DEV = "dev";
......
package com.secoo.mall.common.util.bean; package com.secoo.mall.common.util.bean;
import com.google.common.collect.Maps;
import com.secoo.mall.common.core.errorcode.CommonErrorCode; import com.secoo.mall.common.core.errorcode.CommonErrorCode;
import com.secoo.mall.common.core.exception.BusinessException; import com.secoo.mall.common.core.exception.BusinessException;
import com.secoo.mall.common.core.exception.SystemInternalException;
import com.secoo.mall.common.util.json.FastJsonUtil; import com.secoo.mall.common.util.json.FastJsonUtil;
import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.Map; import java.util.Map;
public class BeanUtil extends BeanUtils { public class BeanUtil extends BeanUtils {
private static final String[] DEFUALT_IGNORE_KEY = {"class", "empty"};
public static boolean containsInteger(Integer[] arr, Integer obj) { public static boolean containsInteger(Integer[] arr, Integer obj) {
return ArrayUtils.contains(arr, obj); return ArrayUtils.contains(arr, obj);
} }
...@@ -25,14 +30,23 @@ public class BeanUtil extends BeanUtils { ...@@ -25,14 +30,23 @@ public class BeanUtil extends BeanUtils {
return field.get(obj); return field.get(obj);
} }
public static <T> T transMap2Bean(Object object, Class<T> classOfT) { public static <T> Map<String, Object> transBean2Map(T object) {
if (object == null || !(object instanceof Map)) { if (object == null) {
return null; return Maps.newHashMapWithExpectedSize(0);
}
try {
return PropertyUtils.describe(object);
} catch (Exception e) {
throw new SystemInternalException();
} }
}
public static <T> T transMap2Bean(Map<String, Object> object, Class<T> classOfT) {
String tmp = FastJsonUtil.toString(object); String tmp = FastJsonUtil.toString(object);
return FastJsonUtil.toBean(tmp, classOfT); return FastJsonUtil.toBean(tmp, classOfT);
} }
public static void copyProps(Object dest, Object orig) { public static void copyProps(Object dest, Object orig) {
try { try {
copyProperties(dest, orig); copyProperties(dest, orig);
......
...@@ -3,8 +3,8 @@ package com.secoo.mall.common.util.checker; ...@@ -3,8 +3,8 @@ package com.secoo.mall.common.util.checker;
import com.secoo.mall.common.core.errorcode.ErrorCode; import com.secoo.mall.common.core.errorcode.ErrorCode;
import com.secoo.mall.common.core.exception.ParameterException; import com.secoo.mall.common.core.exception.ParameterException;
import com.secoo.mall.common.util.decimal.DecimalUtil;
import com.secoo.mall.common.util.colletion.MapUtil; import com.secoo.mall.common.util.colletion.MapUtil;
import com.secoo.mall.common.util.decimal.DecimalUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
......
...@@ -2,5 +2,5 @@ package com.secoo.mall.common.util.file; ...@@ -2,5 +2,5 @@ package com.secoo.mall.common.util.file;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
public class IOUtil extends IOUtils { public class IOUtil extends IOUtils {
} }
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
<property name="LOG_DIR" value="${logPath}/${logName}/%d{yyyyMMdd}"/> <property name="LOG_DIR" value="${logPath}/${logName}/%d{yyyyMMdd}"/>
<property name="MAX_FILE_SIZE" value="128MB"/> <property name="MAX_FILE_SIZE" value="128MB"/>
<property name="MAX_HISTORY" value="7"/> <property name="MAX_HISTORY" value="7"/>
<property name="PATTERN" value="-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|%thread|%logger{36}.%M:%L-%msg%n"/> <property name="PATTERN"
value="-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|%thread|%logger{36}.%M:%L-%msg%n"/>
<property name="CHARSET" value="UTF-8"/> <property name="CHARSET" value="UTF-8"/>
<jmxConfigurator/> <jmxConfigurator/>
<!-- 控制台输出 --> <!-- 控制台输出 -->
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
<springProperty scope="context" name="logPath" source="logging.path" defaultValue="./logs"/> <springProperty scope="context" name="logPath" source="logging.path" defaultValue="./logs"/>
</springProfile> </springProfile>
<property name="PATTERN" <property name="PATTERN"
value="-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|%thread|%logger{36}|%msg%n"/> value="-|%d{yyyy-MM-dd HH:mm:ss.SSS}|%-5level|%X{traceId}|%thread|%logger{36}.%M:%L-%msg%n"/>
<property name="CHARSET" value="UTF-8"/> <property name="CHARSET" value="UTF-8"/>
<jmxConfigurator/> <jmxConfigurator/>
<!-- 控制台输出 --> <!-- 控制台输出 -->
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<level>DEBUG</level> <level>DEBUG</level>
</filter> </filter>
<immediateFlush>false</immediateFlush> <immediateFlush>false</immediateFlush>
</appender> </appender>
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter"> <filter class="ch.qos.logback.classic.filter.LevelFilter">
...@@ -73,11 +74,14 @@ ...@@ -73,11 +74,14 @@
<appender-ref ref="APP"/> <appender-ref ref="APP"/>
<queueSize>1024</queueSize> <queueSize>1024</queueSize>
<neverBlock>true</neverBlock> <neverBlock>true</neverBlock>
<!--防止问号出现-->
<includeCallerData>true</includeCallerData>
</appender> </appender>
<appender name="ASYN_ERROR" class="ch.qos.logback.classic.AsyncAppender"> <appender name="ASYN_ERROR" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="ERROR"/> <appender-ref ref="ERROR"/>
<queueSize>256</queueSize> <queueSize>256</queueSize>
<neverBlock>true</neverBlock> <neverBlock>true</neverBlock>
<includeCallerData>true</includeCallerData>
</appender> </appender>
<!-- <appender name="ASYN_EMAIL" class="ch.qos.logback.classic.AsyncAppender"> <!-- <appender name="ASYN_EMAIL" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="EMAIL"/> <appender-ref ref="EMAIL"/>
...@@ -88,6 +92,7 @@ ...@@ -88,6 +92,7 @@
<appender-ref ref="STDOUT"/> <appender-ref ref="STDOUT"/>
<queueSize>256</queueSize> <queueSize>256</queueSize>
<neverBlock>true</neverBlock> <neverBlock>true</neverBlock>
<includeCallerData>true</includeCallerData>
</appender> </appender>
<logger name="app" level="${logLevel}"> <logger name="app" level="${logLevel}">
......
...@@ -11,5 +11,4 @@ import org.springframework.context.annotation.Configuration; ...@@ -11,5 +11,4 @@ import org.springframework.context.annotation.Configuration;
public class ApolloAutoConfiguration { public class ApolloAutoConfiguration {
} }
...@@ -4,7 +4,7 @@ package com.secoo.matrix.monitor.config; ...@@ -4,7 +4,7 @@ package com.secoo.matrix.monitor.config;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class MonitorAutoConfiguration { public class MonitorAutoConfiguration {
} }
...@@ -35,11 +35,7 @@ public interface MonitorConstant { ...@@ -35,11 +35,7 @@ public interface MonitorConstant {
String ROLE = "Dubbo-RPC"; String ROLE = "Dubbo-RPC";
String ERROR_MSG="errorMsg"; String ERROR_MSG = "errorMsg";
} }
...@@ -19,7 +19,7 @@ public class HttpTraceFilter implements Filter { ...@@ -19,7 +19,7 @@ public class HttpTraceFilter implements Filter {
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
try { try {
TraceIDUtils.continueTraceID(); TraceIDUtils.continueTraceID();
filterChain.doFilter(servletRequest,servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} catch (Exception e) { } catch (Exception e) {
} }
} }
......
...@@ -27,7 +27,6 @@ public class TraceInterceptor extends HandlerInterceptorAdapter { ...@@ -27,7 +27,6 @@ public class TraceInterceptor extends HandlerInterceptorAdapter {
private ThreadLocal<Long> stime = new ThreadLocal<>(); private ThreadLocal<Long> stime = new ThreadLocal<>();
/** /**
* This implementation always returns {@code true}. * This implementation always returns {@code true}.
*/ */
...@@ -42,7 +41,7 @@ public class TraceInterceptor extends HandlerInterceptorAdapter { ...@@ -42,7 +41,7 @@ public class TraceInterceptor extends HandlerInterceptorAdapter {
// // 并发计数 // // 并发计数
// getConcurrent(request).incrementAndGet(); // getConcurrent(request).incrementAndGet();
}catch (Exception e){//容灾 } catch (Exception e) {//容灾
} }
return true; return true;
} }
...@@ -62,12 +61,12 @@ public class TraceInterceptor extends HandlerInterceptorAdapter { ...@@ -62,12 +61,12 @@ public class TraceInterceptor extends HandlerInterceptorAdapter {
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, public void afterCompletion(HttpServletRequest request, HttpServletResponse response,
Object handler, Exception ex) throws Exception { Object handler, Exception ex) throws Exception {
try { try {
MDC.clear(); MDC.clear();
getConcurrent(request).decrementAndGet(); getConcurrent(request).decrementAndGet();
}catch (Exception e){ } catch (Exception e) {
} }
} }
// 获取并发计数器 // 获取并发计数器
......
...@@ -50,7 +50,7 @@ public class MybatisConfig { ...@@ -50,7 +50,7 @@ public class MybatisConfig {
/* 乐观锁插件 */ /* 乐观锁插件 */
// configuration.addInterceptor(new OptimisticLockerInterceptor()); // configuration.addInterceptor(new OptimisticLockerInterceptor());
//非生产环境加载的插件 //非生产环境加载的插件
if (!CommonConstant.Env.PRO.equals(profile) ) { if (!CommonConstant.Env.PRO.equals(profile)) {
configuration.addInterceptor(new PerformanceInterceptor()); configuration.addInterceptor(new PerformanceInterceptor());
} }
......
package com.secoo.mall.openfeign.config; package com.secoo.mall.openfeign.config;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
......
...@@ -243,6 +243,12 @@ ...@@ -243,6 +243,12 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<!--rocketmq-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.0.3</version>
</dependency>
<!--swagger--> <!--swagger-->
<dependency> <dependency>
<groupId>io.springfox</groupId> <groupId>io.springfox</groupId>
......
...@@ -10,6 +10,11 @@ ...@@ -10,6 +10,11 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>rocketmq-starter</artifactId> <artifactId>rocketmq-starter</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
</dependency>
</dependencies>
</project> </project>
\ No newline at end of file
...@@ -3,12 +3,12 @@ package com.secoo.mall.web.advice; ...@@ -3,12 +3,12 @@ package com.secoo.mall.web.advice;
import com.secoo.mall.common.core.errorcode.CommonErrorCode; import com.secoo.mall.common.core.errorcode.CommonErrorCode;
import com.secoo.mall.common.core.exception.BusinessException; import com.secoo.mall.common.core.exception.BusinessException;
import com.secoo.mall.common.core.exception.ParameterException; import com.secoo.mall.common.core.exception.ParameterException;
import com.secoo.mall.common.core.exception.SystemInternalException;
import com.secoo.mall.common.util.log.LoggerUtil; import com.secoo.mall.common.util.log.LoggerUtil;
import com.secoo.mall.common.util.response.ResponseUtil; import com.secoo.mall.common.util.response.ResponseUtil;
import com.secoo.mall.web.annotation.ApiController; import com.secoo.mall.web.annotation.ApiController;
import com.secoo.mall.web.annotation.ApiIgnoreJson; import com.secoo.mall.web.annotation.ApiIgnoreJson;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContext;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.MethodParameter; import org.springframework.core.MethodParameter;
import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.annotation.AnnotationUtils;
...@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; ...@@ -21,7 +21,6 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Locale;
@RestControllerAdvice(annotations = ApiController.class) @RestControllerAdvice(annotations = ApiController.class)
public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> { public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
...@@ -41,7 +40,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> { ...@@ -41,7 +40,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> {
return ResponseUtil.getFailResponse(e.getCode(), msg); return ResponseUtil.getFailResponse(e.getCode(), msg);
} }
@ExceptionHandler(Exception.class) @ExceptionHandler({SystemInternalException.class, Exception.class})
public Object exceptionHandler(Exception e) { public Object exceptionHandler(Exception e) {
LoggerUtil.error(e); LoggerUtil.error(e);
return ResponseUtil.getFailResponse(CommonErrorCode.SYSTEM_INTERNAL_EXCEPTION.getCode(), CommonErrorCode.SYSTEM_INTERNAL_EXCEPTION.getMsg()); return ResponseUtil.getFailResponse(CommonErrorCode.SYSTEM_INTERNAL_EXCEPTION.getCode(), CommonErrorCode.SYSTEM_INTERNAL_EXCEPTION.getMsg());
...@@ -54,7 +53,7 @@ public class ControllerResponseAdvice implements ResponseBodyAdvice<Object> { ...@@ -54,7 +53,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; 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 com.secoo.mall.web.resolver.DefaultLocaleResolver;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -11,7 +9,6 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; ...@@ -11,7 +9,6 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
import java.text.SimpleDateFormat;
import java.util.Locale; import java.util.Locale;
/** /**
......
...@@ -4,7 +4,6 @@ import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrap ...@@ -4,7 +4,6 @@ import com.github.xiaoymin.swaggerbootstrapui.annotations.EnableSwaggerBootstrap
import com.secoo.mall.common.core.condition.ProdEnvCondition; import com.secoo.mall.common.core.condition.ProdEnvCondition;
import com.secoo.mall.web.annotation.ApiController; import com.secoo.mall.web.annotation.ApiController;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Conditional; import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -29,12 +28,12 @@ public class SwaggerConfig { ...@@ -29,12 +28,12 @@ public class SwaggerConfig {
@Bean @Bean
public Docket createRestApi() { public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo()) .apiInfo(apiInfo())
.groupName("SecooMall") .groupName("SecooMall")
.select() .select()
.apis(RequestHandlerSelectors.withClassAnnotation(ApiController.class)) .apis(RequestHandlerSelectors.withClassAnnotation(ApiController.class))
.paths( PathSelectors.any()) .paths(PathSelectors.any())
.build(); .build();
} }
......
...@@ -15,7 +15,7 @@ import java.util.List; ...@@ -15,7 +15,7 @@ import java.util.List;
@Configuration @Configuration
public class WebConfig { public class WebConfig {
@Bean @Bean
public HttpMessageConverters fastJsonHttpMessageConverters() { public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();
......
...@@ -16,8 +16,8 @@ public class DefaultLocaleResolver extends CookieLocaleResolver { ...@@ -16,8 +16,8 @@ public class DefaultLocaleResolver extends CookieLocaleResolver {
protected Locale determineDefaultLocale(HttpServletRequest request) { protected Locale determineDefaultLocale(HttpServletRequest request) {
if (!StringUtil.isEmpty(request.getHeader("Accept-Language"))) { if (!StringUtil.isEmpty(request.getHeader("Accept-Language"))) {
Locale locale = Locale.forLanguageTag(request.getHeader("Accept-Language")); Locale locale = Locale.forLanguageTag(request.getHeader("Accept-Language"));
return "zh".equalsIgnoreCase(locale.toLanguageTag())?super.determineDefaultLocale(request):locale; return "zh".equalsIgnoreCase(locale.toLanguageTag()) ? super.determineDefaultLocale(request) : locale;
} }
String lang = request.getParameter("lang"); String lang = request.getParameter("lang");
......
...@@ -39,8 +39,8 @@ public class WebUtil { ...@@ -39,8 +39,8 @@ public class WebUtil {
return (ServletRequestAttributes) attributes; return (ServletRequestAttributes) attributes;
} }
public static <T> void setAttribute(String name,T obj) { public static <T> void setAttribute(String name, T obj) {
getRequest().setAttribute(name,obj); getRequest().setAttribute(name, obj);
} }
} }
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