package com.artfess.base.aop;


import com.artfess.base.util.ThreadLocalCleanUtil;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

/**
 * 异步线程清理线程变量切面
 *
 * @company 广州宏天软件股份有限公司
 * @author zhangxw
 * @email zhangxw@jee-soft.cn
 * @date 2020年11月6日
 */
@Aspect
@Component
public class AsyncThreadCleanAspect{
	
	@Around("@annotation(com.artfess.base.annotation.AsyncThreadClean)")
	public Object threadLocalClean(ProceedingJoinPoint joinPoint) throws Throwable{
		ThreadLocalCleanUtil.cleanAll();
		return joinPoint.proceed();
	}
}
