2011-08-20 58 views
8

異常線程 「main」 org.springframework.beans.factory.BeanCreationException:錯誤 創建名稱爲 豆 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': bean實例化失敗;嵌套的異常是 org.springframework.beans.BeanInstantiationException:未能進行 實例化bean類 [org.springframework.aop.aspectj.AspectJPointcutAdvisor]:構造 拋出異常;嵌套的異常是 java.lang.IllegalArgumentException異常:切入點是不能很好地形成: 期待 '名稱模式' 在字符位置49 執行(* com.idol.performers.Performer.perform(..)Spring AOP的切入點不能很好地形成

有什麼不對我的切入點在書裏說,

(..) // means taking any arguments 

我的xml:

... 
<aop:before pointcut="execution(*com.idol.performers.Performer.perform(..))" method="takeSeats"/> 
... 

回答

11

試試這個:

<aop:before pointcut="execution(* com.idol.performers.Performer.perform(..))" method="takeSeats"/> 

的問題是,你有*com.idol.performers.Performer.perform(..)之間沒有空格

+0

有時候解析錯誤可能導致模糊的消息。在這種情況下,它認爲'*'通配符是'com.idol.performers.Performer.perform'的一部分,這意味着它期望該類型作爲返回類型,而不僅僅是'*'。然後,它建議在它看到一個'(',它需要有一個'名稱模式'的意思是方法名稱。這就是爲什麼這個空間是必要的,這真的是想要說的是,它的最佳方式可以。 –

2

應該有*和com.idol.performers.Performer.perform(..)之間的空間