Skip to content

Commit 93d06d2

Browse files
authored
Merge pull request eugenp#7501 from amit2103/BAEL-16045-23
Bael 16045 23
2 parents eece357 + e62af7d commit 93d06d2

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

spring-boot-mvc/pom.xml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,18 @@
8989
<scope>provided</scope>
9090
</dependency>
9191

92+
<!-- AOP -->
93+
<dependency>
94+
<groupId>org.aspectj</groupId>
95+
<artifactId>aspectjrt</artifactId>
96+
<version>1.9.1</version>
97+
</dependency>
98+
<dependency>
99+
<groupId>org.aspectj</groupId>
100+
<artifactId>aspectjweaver</artifactId>
101+
<version>1.9.1</version>
102+
</dependency>
103+
92104
</dependencies>
93105

94106
<build>
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.baeldung.annotations;
2+
3+
import org.aspectj.lang.ProceedingJoinPoint;
4+
import org.aspectj.lang.annotation.Around;
5+
import org.aspectj.lang.annotation.Aspect;
6+
import org.aspectj.lang.annotation.Pointcut;
7+
import org.springframework.stereotype.Component;
8+
9+
import java.util.concurrent.TimeUnit;
10+
import java.util.logging.Logger;
11+
12+
@Aspect
13+
@Component
14+
public class PerformanceAspect {
15+
16+
private static Logger logger = Logger.getLogger(PerformanceAspect.class.getName());
17+
18+
@Pointcut("within(@org.springframework.stereotype.Repository *)")
19+
public void repositoryClassMethods() {
20+
}
21+
22+
@Around("repositoryClassMethods()")
23+
public Object measureMethodExecutionTime(ProceedingJoinPoint pjp) throws Throwable {
24+
long start = System.nanoTime();
25+
Object retval = pjp.proceed();
26+
long end = System.nanoTime();
27+
String methodName = pjp.getSignature().getName();
28+
logger.info("Execution of " + methodName + " took " + TimeUnit.NANOSECONDS.toMillis(end - start) + " ms");
29+
return retval;
30+
}
31+
32+
}

0 commit comments

Comments
 (0)