2011-08-10 39 views
3

私は本当にダングルを取得します。 このコードは正常に動作します:@pointcutがうまくいきません

@Before("execution(* *.runi(..))") 
public void perform() 
{ 
    sysout("hello");  
} 

が、この取得例外:

@Pointcut("execution(* *.runi(..))") 
public void perform() 
{ 

} 

@Before("perform()") 
public void singerReport(Name name) 
{ 
    sysout("hello");  
} 

例外:

Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error at ::0 formal unbound in pointcut 

答えて

0

私はそれがその引数 "名前" がバインドされていないあなたを語っています信じています。引数を削除すると、2つの引数は同じように機能するはずです。

1

あなたが好きsomefingを使用することができます。

@Pointcut("execution(* *.runi(com.yourproject.Name)) && args(name)") 
public void perform(Name name){} 

@Before("perform(com.yourproject.Name) && args(name)") 
public void singerReport(Name name) 
{ 
    sysout("hello");  
}