que necesitan para crear un aspecto con un punto de corte coincide con un método si:métodos que coinciden con los parámetros anotados pointcut
- es público
- su clase se anota con @Controller (último no lo hace)
- Uno de sus parámetros (puede tener muchos) se anota con @MyParamAnnotation.
Creo que las dos primeras condiciones son fáciles, pero no sé si es posible lograr el tercero con Spring. Si no es así, tal vez pueda cambiar en:
- uno de sus parámetros es una instancia del tipo com.me.MyType (o pone en práctica alguna de las interfaces)
¿Cree que es posible ¿lograr esto? ¿Y el rendimiento será bueno?
Gracias
EDITAR: Un ejemplo de un método de emparejamiento. Como puede ver, MyMethod no está anotado (pero puede ser).
@Controller
public class MyClass {
public void MyMethod (String arg0, @MyParamAnnotation Object arg1, Long arg3) {
...
}
}
EDITAR: La solución finalmente he utilizado, basado en las respuestas @Espen. Como puede ver, cambié un poco mis condiciones: la clase en realidad no necesita ser un @Controller.
@Around("execution(public * * (.., @SessionInject (*), ..))")
public void methodAround(JoinPoint joinPoint) throws Exception {
...
}
Se ve bien, pero no es exactamente lo que estoy buscando. Edité mi pregunta para ser más preciso. Gracias. – sinuhepop
He encontrado un método para simplificarlo. Edité mi pregunta, ¡pero todos los créditos sobre ti! Gracias. – sinuhepop
¡Buena edición! Me alegra verte como este tipo de preguntas;) – sinuhepop