今天学习struts2和spring整合,遇到个问题spring注入老不成功,而且后台不报任何错误,找了半天才找出原因,特意记下来,详细如下:
IocAction 中有一个接口IocTestInterface 的引用iti,struts2+spring整合配置如下:
struts.xml:
applicationContext.xml:
当发起请求list.action,IocAction 中的iti值为null,看起来iti并未被spring成功注入。原因是因为strust.xml配置写错了,tomcat启动后其实iti已经成功被注入到IocAction中,但由于struts.xml配置中class=“com.lzming.test.IocAction“,意味着重新给IocAction创建一个实例,而并不是使用原来已经注入了iti的哪个实例,最新创建的IocAction实例里iti当然为null。因此需要修改struts.xml中的配置,改为如下:
这样就OK啦!
注意:class中的值(iocAction)要跟applicationContext.xml:中bean的name保持一致