<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.9.7</version>
</dependency>
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
@Interceptor
public class LoggingInterceptor {
@AroundInvoke
public Object logMethodInvocation(InvocationContext context) throws Exception {
try {
Object result = context.proceed();
return result;
} catch (Exception e) {
throw e;
}
}
}
import javax.inject.Inject;
import javax.interceptor.Interceptors;
@Interceptors(LoggingInterceptor.class)
public class ExampleClass {
@Inject
private SomeDependency dependency;
public void doSomething() {
System.out.println("Doing something...");
}
}
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/beans_1_2.xsd"
bean-discovery-mode="all">
<interceptors>
<class>com.example.LoggingInterceptor</class>
</interceptors>
</beans>