AOP語句不生效的原因
如果出現(xiàn)AOP不生效(即輸出語句沒有執(zhí)行),但是缺也沒有報錯的原因:?
包是有了,所以不會報錯,但是aop的包的版本不匹配,它可能是從倉庫拿了個同名但是版本不匹配的包,在Ideal工具中的Maven插件中,把該Module的pom.xml文件移除,然后再添加,它會默認從定義好的Parent標簽中版本中找到合適的包下載
上面的操作就是相當(dāng)于"更新"
如果出現(xiàn)AOP不生效(即輸出語句沒有執(zhí)行),但是缺也沒有報錯的原因:?
包是有了,所以不會報錯,但是aop的包的版本不匹配,它可能是從倉庫拿了個同名但是版本不匹配的包,在Ideal工具中的Maven插件中,把該Module的pom.xml文件移除,然后再添加,它會默認從定義好的Parent標簽中版本中找到合適的包下載
上面的操作就是相當(dāng)于"更新"
2019-03-04
舉報
2019-03-07
有可能出現(xiàn)的問題:
1:execution表達式寫錯了。
2:配置文件或配置類中忘記添加<aop:aspectj-autoproxy/>。
3:如果切入點沒有實現(xiàn)接口需要使用cglib動態(tài)代理,<aop:aspectj-autoproxy proxy-target-class="true"/>。
4:<context:component-scan 配置的問題導(dǎo)致無法動態(tài)代理,具體請參考官方文檔。
一般情況下主配置文件要排除@Controller注解,webmvc配置里應(yīng)該只包含@Controller注解。
如果我們要切入Controller,我們需要在webmvc配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。
如果我們要切入其他如Service,我們需要在主配置里面加入<aop:aspectj-autoproxy proxy-target-class="true"/>。
如果我們既要切入Controller又要切入Service,兩個配置都需要加入<aop:aspectj-autoproxy proxy-target-class="true"/>。這個問題比較奇怪,目前還不知道解決方法。