AOP實現監控方法執行耗時

@AllArgsConstructor @Aspect @Slf4j @Component public class StopWatchPrinter implements Serializable { private static final long serialVersionUID = -8557926864119671723L; private static final String DELIMITER = "#"; private static final String PREFIX = "_threadId"; /** * com.xxx.batching 包及所有子包下任何類的任何方法 */ @Pointcut("execution(* com.xxx.batching..*.*(..))") public void pointCut(){} @Around("pointCut()") public Object watch(ProceedingJoinPoint pjp){ StopWatch watcher = new StopWatch(new StringJoiner(DELIMITER) .add(pjp.getSignature().toString()) .add(PREFIX) .add(Thread.currentThread().getName()).toString()); watcher.start(pjp.getSignature().toString()); Object proceed = null; try { proceed = pjp.proceed(); } catch (Throwable e) { log.error("watch error",e); } watcher.stop(); log.info("###watch end...print:{}",watcher.prettyPrint()); return proceed; } }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章