package com.yanzuoguang.cloud.aop; import com.yanzuoguang.util.exception.ExceptionHelper; import com.yanzuoguang.util.helper.StringHelper; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework.stereotype.Component; /** * LogsAspect(接口请求日志切面) * * @author: Kang * @time: 2018年04月25日 11:43 */ @Aspect @Component public class MqAspect extends BaseRequestAspect { private static final String TAG = MqAspect.class.getSimpleName(); /** * exec aop point aspect */ @Pointcut("execution(* *..mq..*Consumer.*(..))") public void mqAspect() { } /** * 执行环形切面 * * @param joinPoint * @return */ @Around(value = "mqAspect()") public Object requestWebAround(ProceedingJoinPoint joinPoint) throws Throwable { boolean clear = requestLogInit(); long start = requestLog(TAG, joinPoint); Object result = null; Exception ex = null; try { result = executeMethod(joinPoint); return result; } catch (Exception e) { // 消费消息出错 result = ExceptionHelper.getError(e); ex = e; throw e; } finally { responseLog(clear, TAG, StringHelper.EMPTY, joinPoint, start, result, ex); } } private Object executeMethod(ProceedingJoinPoint joinPoint) throws Throwable { return joinPoint.proceed(); } }