Ich habe den folgenden Code-basierten Stil Aspekt, der eine Annotation auf Feldebene im Code sucht und eine Methode mit diesem Feld als Argument aufruft. Dies ist, wie es aussieht ..Konvertieren von Code-basierten Stil in Annotation Based Style AOP mit Spring oder AspectJ
public aspect EncryptFieldAspect
{
pointcut encryptStringMethod(Object o, String inString):
call(@Encrypt * *(String))
&& target(o)
&& args(inString)
&& !within(EncryptFieldAspect);
void around(Object o, String inString) : encryptStringMethod(o, inString) {
proceed(o, FakeEncrypt.Encrypt(inString));
return;
}
}
Die obige Methode funktioniert gut, aber ich möchte es Annotation im Frühjahr oder AspectJ, etwas Ähnliches zu dieser Basis konvertieren. Gefunden AspectJ docs ein bisschen jeden Hinweis verwirrend wäre hilfreich ..
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@Aspect
public class MyAspect {
@Around("execution(public * *(..))")
public Object allMethods(final ProceedingJoinPoint thisJoinPoint) throws Throwable {
System.out.println("Before...");
try{
return thisJoinPoint.proceed();
}finally{
System.out.println("After...");
}
}
}
Hallo, ich habe einen sehr ähnlichen Anwendungsfall. Ich benutze Spring-Boot 1.4, und bekomme "Pointcut ist fehlerhaft: Fehler bei :: 0 formal ungebunden in Pointcut" während scheinbar die @Around Teil. Irgendein Rat? – oak