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>
大致看了一下,並沒有發現什麼異常,仔細檢查了一遍,發現是切點的名稱與切面的引用重複了:

修改切點名稱爲其他的,啓動正常!

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