Spring AOP报错:Unable to locate method [xxx] on bean [xxx]

一.前言

在使用xml配置aop,测试AOP时,报错如下:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#3bbc39f8': Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Unable to locate method [loginBefore] on bean [loginCheck]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:603)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:374)
	... 36 more
Caused by: java.lang.IllegalArgumentException: Unable to locate method [loginBefore] on bean [loginCheck]
	at org.springframework.aop.config.MethodLocatingFactoryBean.setBeanFactory(MethodLocatingFactoryBean.java:80)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1818)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1783)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)
	... 38 more

二. 问题定位

提取有用的报错信息:

Error creating bean with name '(inner bean)#400cff1a'

Unable to locate method [loginBefore] on bean [loginCheck]

报错显示是loginCheck中方法出错,仔细检查了类中的方法,并没有错误,看网上说是aspectjweaver的jar包未引入导致,检查了一下,引入正常,说明不是jar包的问题,想到可能是配置文件有问题,我的配置如下;

   <aop:config >
       <aop:aspect id="myLoginCheck" ref="loginCheck">
           <aop:pointcut id="loginCheck" expression="execution(* com.clguo.service.*.*(..))"/>
            <aop:before pointcut-ref="loginCheck" method="loginBefore"/>
        </aop:aspect>
    </aop:config>
大致看了一下,并没有发现什么异常,仔细检查了一遍,发现是切点的名称与切面的引用重复了:

修改切点名称为其他的,启动正常!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章