在pom.xml中增加下列依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
AOP類代碼如下:
@Aspect @Component public class ScheduledAspect { private static Logger logger = Logger.getLogger(ScheduledAspect.class); @Autowired private RedisService redisService; @Pointcut("@annotation(org.springframework.scheduling.annotation.Scheduled)") public void proxyAspect() {} @Around("proxyAspect()") public Object doInvoke(ProceedingJoinPoint pjp) throws Throwable { // 獲取方法名 String methodName = pjp.getSignature().getName(); // 打印正在執行的方法到控制台 String redisMember = String.format("%s %s", DateUtil.toDateTimeString(new Date()), methodName); System.out.println(redisMember); // 將方法名+開始時間保存到redis,執行結束后從redis刪除 try { redisService.getRedis().sadd("xhs-task", redisMember); return pjp.proceed(); } catch (Exception e) { logger.error(methodName, e); return null; } finally { try { redisService.getRedis().srem("xhs-task", redisMember); } finally { RedisService.closeRedis(); } } } }