Spring AOP 报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name

完整报错如下:


org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'beforeAdvice' defined in class path resource [applicationContext.xml]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointcutAdvisor#0': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.aop.aspectj.AspectJPointcutAdvisor]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed: expecting 'name pattern' at character position 10
execution()

出现了一种<aop:config>标签与bean无法共存的现象,一开始以为是aspectj 包的版本问题,可修改来修改去,还是报错。

解决方案:后来发现,还是因为excution()内的表达式写错了,修改后运行成功。

    <aop:config>
        <aop:aspect id="beforeAspect" ref="beforeAdvice">
            <aop:before method="methodBefore" pointcut="execution(* com.ph.service..*.*(..))"/>
        </aop:aspect>
    </aop:config>

如果排除了版本不匹配、注解没写等问题后,还是报错,就要考虑是不是execution表达式写错了。

上一篇:redis启动出错Creating Server TCP listening socket 127.0.0.1:6379: bind: No error(转)


下一篇:【Gradle】Gradle任务