Mudanças entre as edições de "Interceptando métodos no Java"
De Basef
(Criou página com 'Para interceptar a chamada de um método, antes e depois, o seguinte esquema pode ser utilizado: 1) Criar uma classe interceptor: <source lang="java"> import javax.intercept...') |
(Sem diferença)
|
Edição atual tal como às 14h41min de 28 de julho de 2017
Para interceptar a chamada de um método, antes e depois, o seguinte esquema pode ser utilizado:
1) Criar uma classe interceptor:
import javax.interceptor.AroundInvoke; import javax.interceptor.InvocationContext; public class ExecutionTimeInterceptor { @AroundInvoke public Object invoke(InvocationContext context) throws Exception { String methodName = context.getMethod().getName(); String className = context.getTarget().getClass().getName(); long timeBefore = System.currentTimeMillis(); try { return context.proceed(); } finally { long timeAfter = System.currentTimeMillis(); long timeDiff = timeAfter - timeBefore; System.out.println("[ExecutionTimeInterceptor]: " + className + "::" + methodName + ": time " + timeDiff); } } }
2) Utilizar a anotação no método desejado:
import javax.interceptor.Interceptors; public myClass { @Interceptors(ExecutionTimeInterceptor.class) public void myMethod() { } }