ho bisogno di creare un aspetto con una pointcut corrispondenza di un metodo se:pointcut metodi di corrispondenza con i parametri annotati
- è pubblica
- La sua classe è annotata con @Controller (finalmente non lo fa)
- Uno dei suoi parametri (può avere molti) è annotato con @MyParamAnnotation.
Penso che le prime due condizioni siano facili, ma non so se è possibile realizzare il terzo con Spring. Se non lo è, forse posso trasformarla in:
- Uno dei suoi parametri è un'istanza di tipo com.me.MyType (o implementa alcune interfaccia)
Pensi che è possibile raggiungere questo? E le prestazioni andranno bene?
Grazie
EDIT: Un esempio di un metodo di corrispondenza. Come puoi vedere, MyMethod non è annotato (ma può essere).
@Controller
public class MyClass {
public void MyMethod (String arg0, @MyParamAnnotation Object arg1, Long arg3) {
...
}
}
EDIT: La soluzione alla fine ho usato, in base alle risposte @Espen. Come puoi vedere, ho cambiato un po 'le mie condizioni: la classe in realtà non ha bisogno di essere un @Controller.
@Around("execution(public * * (.., @SessionInject (*), ..))")
public void methodAround(JoinPoint joinPoint) throws Exception {
...
}
Sembra buono, ma non è esattamente quello che sto cercando. Ho modificato la mia domanda per essere più preciso. Grazie. – sinuhepop
Ho trovato un metodo per semplificarlo. Ho modificato la mia domanda, ma tutti i crediti su di te! Grazie. – sinuhepop
Buona modifica! Sono contento di vederti come questo tipo di domande;) – sinuhepop