<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-weaver-parent</artifactId>
<version>1.4</version>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.commons</groupId>
<artifactId>commons-weaver-maven-plugin</artifactId>
<executions>
<execution>
<id>commons-weaver</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
import org.apache.commons.lang3.time.StopWatch;
import org.apache.commons.weaver.annotations.Weave;
import org.apache.commons.weaver.privilizer.Privileged;
@Weave
public class LoggingAspect {
public static void beforeMethodExecution() {
StopWatch stopWatch = new StopWatch();
stopWatch.start();
System.out.println("Method execution started at: " + stopWatch.getTime());
}
public static void afterMethodExecution() {
StopWatch stopWatch = new StopWatch();
stopWatch.stop();
System.out.println("Method execution completed in: " + stopWatch.getTime());
}
}
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
import org.apache.commons.weaver.annotations.Visit;
@Visit(LoggingAspect.class)
public class Calculator {
public int add(int a, int b) {
return a + b;
}
}
Method execution started at: 100
Method execution completed in: 200