@Aspects(AOP)对Spring MVC中Controller不起作用的原因及解决方案

原因

Spring MVC加载的是WebApplicationContext而不是ApplicationContext,也就是说spring和springMvc使用的是不同的容器,如果只在spring的配置文件中配置了<aop:aspectj-autoproxy/>,那么AOP是不能正常在controller中起到作用的,因此需要把该配置同样配置到springMvc的配置文件中。

解决方案

1.在web.xml中找到当前使用的spring MVC的配置文件位置
mark

2.找到springMvc的配置文件,添加配置Aspectj的自动代理(许多造成该错误的原因都是因为只在spring的配置文件中配置了aspectj的支持)
mark