项目框架是struts2+spring,在未使用AOP机制前,在action层注入的service是没有问题的,但是当尝试在action层使用AOP机制拦截相关异常时,会出现注入失败的问题,出现空指针异常。
问题分析:原因是一般struts2+spring应用中,spring的插件只负责为action的ioc部分,但并没有进行功能加强,即采用代理的机制,所有的action还是使用struts2进行管理,
在使用AOP后,这些action需要由spring进行管理,如果没有由spring进行代理,将出现注入失败。
解决办法:在每个action前加上@Component("loginAction") @Scope("prototype"),在struts的配置中使用loginAction的名字进行配置,@Scope用于声明action使用多实例,这样AOP可以进行正常注入