From 28c60f19a84ec028896e5cd63b8f5048c4ead9f1 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 4 Aug 2019 17:16:53 +0530 Subject: [PATCH] [BAEL-16045] - Check Article Code Matches GitHub for https://www.baeldung.com/spring-bean-annotations article --- spring-boot-mvc/pom.xml | 12 +++++++ .../annotations/PerformanceAspect.java | 32 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java diff --git a/spring-boot-mvc/pom.xml b/spring-boot-mvc/pom.xml index fee725847f..a414ed7bb2 100644 --- a/spring-boot-mvc/pom.xml +++ b/spring-boot-mvc/pom.xml @@ -89,6 +89,18 @@ provided + + + org.aspectj + aspectjrt + 1.9.1 + + + org.aspectj + aspectjweaver + 1.9.1 + + diff --git a/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java b/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java new file mode 100644 index 0000000000..534a2ba333 --- /dev/null +++ b/spring-boot-mvc/src/main/java/com/baeldung/annotations/PerformanceAspect.java @@ -0,0 +1,32 @@ +package com.baeldung.annotations; + +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; + +import java.util.concurrent.TimeUnit; +import java.util.logging.Logger; + +@Aspect +@Component +public class PerformanceAspect { + + private static Logger logger = Logger.getLogger(PerformanceAspect.class.getName()); + + @Pointcut("within(@org.springframework.stereotype.Repository *)") + public void repositoryClassMethods() { + } + + @Around("repositoryClassMethods()") + public Object measureMethodExecutionTime(ProceedingJoinPoint pjp) throws Throwable { + long start = System.nanoTime(); + Object retval = pjp.proceed(); + long end = System.nanoTime(); + String methodName = pjp.getSignature().getName(); + logger.info("Execution of " + methodName + " took " + TimeUnit.NANOSECONDS.toMillis(end - start) + " ms"); + return retval; + } + +}