Ich benutze Spring Framework (2.5) und es ist AOP-Funktionen. Ich habe einen pointcut Ausdruck, wiePointcut funktioniert nicht für generische Schnittstelle
@Pointcut("execution(public * org.springframework.batch.item.ItemReader+.read(..))")
public void itemReaderMethods() {}
Wo die ItemReader interface eine Feder Schnittstelle und es ist Signatur ist:
org.springframework.batch.item.ItemReader<T>
Die Schnittstelle eine Methode als ‚gelesen‘ genannt hat, für die ich anwenden möchten die Beratung: die Methodensignatur ist:
org.springframework.batch.item.ItemReader.read()
Aber, wenn ich meine Anwendung mit dem oben pointcut Ausdruck laufen, ich bin die unten Ausnahme bekommen:
java.lang.IllegalArgumentException: keine Übereinstimmung für diese Art Name Warnung: org.springframework.batch.item.ItemReader [Xlint: invalidAbsoluteTypeName]
Meine Vermutung ist, dass, da ItemReader eine generische Schnittstelle ist, die pointcut passt nicht richtig zusammen. Wenn das der Fall ist, wie kann ich meinen Pointcut-Ausdruck so schreiben, dass er auch den generischen Interfaces entspricht?
Das ist nicht der Fall. Aufgrund des Typs löscht es nicht auf generische Argumente. – cletus