分类 Spring 中的文章

日志优化MDC

MDC(Mapped Diagnostic Context) 实现 步骤1:创建MDCFilter实现Filter filter(过滤器)作用于在intreceptor(拦截器)之前,不像intreceptor一样依赖于springmvc框架,只需要依赖于serverlet。 在过滤之前在reqId钟放入uuid并在结束之后remove import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; import org.springframework.stereotype.Component; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.util.UUID; /** * @Author shizhongcai * @Date 2019/11/15 11:15 */ @Component public class MDCFilter implements Filter { private static final Logger LOG = LoggerFactory.getLogger(MDCFilter.class); public static final String MDC_ID = "reqId"; @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { boolean mdcFlag = false; try { MDC.……

阅读全文

统一返回对象

1.创建实体类BaseRspVo @Data public class BaseRspVo<T> { private boolean success; private String msg; private Integer errorCode; private T data; public BaseRspVo() { } public BaseRspVo (T data){ this.success = true; this.msg= ErrorCodesEnum.SUCCESS.getMsg(); this.errorCode = ErrorCodesEnum.SUCCESS.getCode(); this.data = data; } public BaseRspVo(ErrorCodesEnum errorCode) { if(errorCode == ErrorCodesEnum.SUCCESS) { this.success = true; } else { this.success = false; } this.msg = errorCode.getMsg(); this.errorCode = errorCode.getCode(); } } 错误Code枚举类 public enum ErrorCodesEnum { SUCCESS(10000,"成功"), SYS_ERROR(1000,"系统异常,请稍后再试"), DUPLICATE_KEY(10001,"数据库中已存在该记录"), NO_HANDLER_FOUND(10002,"路径不存在,请检查路径是否正确"), DEFAULT_FAIL(10003,"未知异常,请稍后再试"), DECRYPT_ERROR(10004,"解密出错"), ; /** * 错误码 */ private int code; /** * 错误描述 */ private String msg; ErrorCodesEnum(int code, String msg) { this.……

阅读全文

项目开发

Spring中Filter和Interceptor的区别 全局异常处理 统一返回结果对象 日志优化MDC(Mapped Diagnostic Context)的类(技术上使用了ThreadLocal实现,重点技术) 基于自定义注解的参数解析器(通过HandlerMethodArgumentResolver实现) 基于自定义注解的结果包装统一返回(通过HandlerMethodReturnValueHandler实现) 接口限流-令牌桶限流 参数校验-JSR-303 ……

阅读全文

项目开发

Spring中Filter和Interceptor的区别 全局异常处理 统一返回结果对象 日志优化MDC(Mapped Diagnostic Context)的类(技术上使用了ThreadLocal实现,重点技术) 基于自定义注解的参数解析器(通过HandlerMethodArgumentResolver实现) 基于自定义注解的结果包装统一返回(通过HandlerMethodReturnValueHandler实现) 接口限流-令牌桶限流 参数校验-JSR-303 ……

阅读全文