Ява.ленг.IllegalArgumentException: ошибка при: 0 формальная несвязанная в pointcut
мыслитель.java
package springdemo2;
public interface Thinker {
void thinkOfSomething(String thoughts);
}
волонтер.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();
}
мага.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 (Весна)
Я включил <aop:aspectj-autoproxy/>
в моем XML-файле.
я получил следующее сообщение об ошибке
java.lang.IllegalArgumentException: error at ::0 formal unbound in
pointcut
4 ответов
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething(String)) and args(thoughts)")
должно быть
@Pointcut("execution(* springdemo2."
+ "Thinker.thinkOfSomething()) && args(thoughts)")
однако, если параметры каждого метода не совпадают, как это сделать?
Я скажу вам:
Spring использует аннотацию аннотации, используя объявление интерфейса Joinpoint в aopalliance.jar: org.аопальянс.перехват.Joinpoint.
конфигурация xml используется Joinjoint.оператор Jar Join: org.в AspectJ.ленг.JoinPoint.
Итак,вы должны использовать JoinPoint aspectj в методе.
, когда java.lang.IllegalArgumentException
: error at ::0
формальная несвязанная в pointcut как проблема возникает, то любезно проверьте структуру вашего совета, или выражение pointcut в максимальных случаях ошибка будет там сама.