Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Cannot create inner bean '(inner bean)#45c7e403' of type [org.springframework.aop.aspectj.AspectJMethodBeforeAdvice] while setting constructor argument; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '(inner bean)#45c7e403': Unsatisfied dependency expressed through constructor parameter 1: Could not convert argument value of type [dao.MoocAspect] to required type [org.springframework.aop.aspectj.AspectJExpressionPointcut]: Failed to convert value of type 'dao.MoocAspect' to required type 'org.springframework.aop.aspectj.AspectJExpressionPointcut'; nested exception is java.lang.IllegalStateException: Cannot convert value of type 'dao.MoocAspect' to required type 'org.springframework.aop.aspectj.AspectJExpressionPointcut': no matching editors or conversion strategy found
目测是切入点的问题,我们看看xml文件:
<bean id="moocAspect" class="dao.MoocAspect"></bean>
<bean id="aspectBiz" class="services.AspectBiz"></bean>
<aop:config>
<aop:aspect id="moocAspectAOP" ref="moocAspect">
<aop:pointcut expression="execution(* services.*.*(..))" id="moocPoint"/>
<aop:before method="before" pointcut-ref="moocAspect"/>
</aop:aspect>
</aop:config>
before方法是在切入点执行之前执行的方法,所以,point-ref应该改为moocPoint.
OK问题解决。