我们一般的Spring 整合 Struts后
Spring管理service层
Struts管理action层(类似于spring的controller层)
这个时候就会产生一个问题
就是,action里面使用spring service bean,怎么获取这个bean?
一般我们会想到
通过xml配置,把action扫描到spring容器中,然后,用注解在action里面,给对应的service注入实例即可
但是,我现在接手的一个项目,10几年前的,非常老,居然,不用spring注解。
让人抓狂
最后,琢磨了几天,终于知道了,这种情况下,action里面如何注入service bean实例
常规,我们写好对应的action.java,strutsaction.xml,springbean.xml,service.java及serviceImp.java
第一步:
我们要在action.java里面,引用一些service,写法一般会这样:
(注:这里的extends 的 MainBaseAction 和注解去掉没关系)
这里的BO对应的就是service interface
这里的BO变量名称必须和xml中的bean ID 对应上
然后,我们在action.java文件中,对这些字段生成对应的get、set方法
第二步:
然后,我们回到strutsaction.xml文件中
注意到,这里的class写的是action.java文件的全路径
不是以往的action 注入 spring容器后的 action bean name
做好这些后,启动项目,就可以看到,service成功注入了