Java.lang.IllegalArgumentException: erreur:0 formel indépendant en coupe transverse (pointcut)
Penseur.java
package springdemo2;
public interface Thinker {
void thinkOfSomething(String thoughts);
}
des Bénévoles.java
package springdemo2;
public class Volunteer implements Thinker{
private String thoughts;
@Override
public void thinkOfSomething(String thoughts) {
this.thoughts=thoughts;
}
public String getThoughts(){
return thoughts;
}
}
MindReader.java
package springdemo2;
public interface MindReader {
void interceptThoughts(String thoughts);
String getThoughts();
}
Magicien.java
package springdemo2;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
@Aspect
public class Magician implements MindReader {
private String thoughts;
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething(String)) and args(thoughts)")
public void thinking(String thoughts){
}
@Override
@Before("thinking(thoughts)")
public void interceptThoughts(String thoughts) {
this.thoughts=thoughts;
System.out.println("Advice method intercepted Thoughts..."+thoughts);
}
@Override
public String getThoughts() {
return thoughts;
}
}
XML (Spring)
j'ai inclus <aop:aspectj-autoproxy/>
dans mon fichier XML.
j'ai reçu le Message D'erreur suivant
java.lang.IllegalArgumentException: error at ::0 formal unbound in
pointcut
4 réponses
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething(String)) and args(thoughts)")
doit être
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething()) && args(thoughts)")
@Before("thinking(thoughts)")
doit être
@Before("thinking(String) && args(thoughts)")
Toutefois, si les paramètres de chaque méthode ne sont pas les mêmes, comment faire?
je vais vous dire:
Spring utilise L'annotation annotation en utilisant la déclaration D'interface Joinpoint dans aopalliance.jar: org.aopalliance.intercepter.De jonction.
la configuration xml est utilisée Joinjoint.pot de Joindre à la déclaration:org.aspectj.lang.De jonction.
ainsi, vous devriez utiliser le JoinPoint d'aspectj dans la méthode.
Quand java.lang.IllegalArgumentException
:error at ::0
formel indépendant en coupe transverse (pointcut) comme le problème se produit-il alors de bien vouloir vérifier la structure de votre avis, ou l'expression d'une coupe transverse (pointcut) dans un maximum de cas, l'erreur sera là lui-même.