I have an aspect written in a project called connector and generated a jar for that project. I have integrated that jar into another spring boot application as a Gradle dependency. This aspect is not working.
JAR FILE CODE
TrackExecutionTime.java
package a.b.aspect;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface TrackExecutionTime {}
ConnectorAOPConfig.java
package a.b.aspect;
@Aspect
@Component
public class ConnectorAOPConfig {
public ConnectorAOPConfig() {
}
@Around("@annotation(a.b.aspect.TrackExecutionTime)")
public Object logExecutionTime(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("Inside Aspect");
return joinPoint.proceed();
}
}
MAIN CODE
AOPConfig.java
package a.c.config;
// Imports here
@Configuration
@EnableAspectJAutoProxy
@ComponentScan(basePackages = {"a.b.aspect"})
public class AOPConfig {
@Bean
public ConnectorAOPConfig aopHandler()
{
return new ConnectorAOPConfig();
}
}
Code targeted by aspect:
@TrackExecutionTime
public static ApplicationDTO fetchApplicationByName(String name) {
//code
return application;
}
Note: I added that annotation in the connector jar only. Still it is not getting triggered.