我们现在实现一个自定义starter 用来记录日志
看好我的项目
然后我此时用拦截器 +注解实现的日志
///拦截器
@Slf4j
public class Loginterceptor implements HandlerInterceptor {
private static final ThreadLocal threadLocal = new ThreadLocal();
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
/// 处理的方法
if(handler instanceof HandlerMethod){
HandlerMethod method = (HandlerMethod) handler;
Log methodAnnotation = method.getMethodAnnotation(Log.class);
// 如果不为空的话
if (!ObjectUtils.isEmpty(methodAnnotation)) {
long start = System.currentTimeMillis();
threadLocal.set(start);
}
}
return true;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
if(handler instanceof HandlerMethod){
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
Log methodAnnotation = handlerMethod.getMethodAnnotation(Log.class);
// 如果不为空的话
if (!ObjectUtils.isEmpty(methodAnnotation)) {
StringBuffer requestURL = request.getRequestURL();
/// 全路径名
String globleMethodName = method.getDeclaringClass().getName() + "#" + method.getName();
/// 描述信息
String desc = methodAnnotation.desc();
long end = System.currentTimeMillis();
long start = (long) threadLocal.get();
long l = end - start;
System.out.println(" 耗时: " + l);
log.info("请求路径{}--->,请求方法{}--->,描述信息{}--->,总计消耗{}--->"
, requestURL.toString(), globleMethodName, desc, l);
}
}
}
}
日志 注解
@Configuration// 代表是一个配置类
之后在这里建一个spring.factories 的文件 这样我们到时候就可以用到他
之后mvn install--->lichee-spring-boot-autoconfigure
打成jar
依赖一下 然后再吧 lichee-spring-boot-starter 打成jar
~~~~~~~~~~~~~~~ 引入一个springboot-项目
~~运行Springboot ==========>>localhost:8080
看这样就起来了 能用了
|