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(..)之间的空间