以个人见解认为struts1 与spring整合的时候按照习惯,我们会把 action 控制器直接配置到sping中去:
applicationContext.xml中配置:
把控制器类配置到spring中
这时候service则可以正常的注入到控制器中进行使用了。
eg :
这里以使用元注解方式实现Service注入进行讲解:
控制器关键代码(红色标注位置):
public class RequestMusicresAction extends BaseAction {
<span style="color:#ff0000;"><strong>@Resource(name="musicOpenPortService")</strong></span>
private MusicOpenPortService musicOpenPortService;
<span style="white-space:pre"> </span><span style="color:#006600;">..........</span>
applicationContext.xml中配置:
<!-- 启用注解 -->
<context:annotation-config/>
把控制器类配置到spring中
<bean name="/reqdata" class="com.poj.web.action.open.RequestMusicresAction" scope="prototype"/>
<bean name="/upload" class="com.poj.web.action.control.UploadAcrion" scope="prototype"/>
<bean name="/usrmgr" class="com.poj.web.action.control.LoginAction" scope="prototype"/>
<span style="color:#006600;"><strong>.......</strong></span>
这时候service则可以正常的注入到控制器中进行使用了。
好,回归主题,之所以使用上述的方式来引出标题所述的问题,是因为struts2的同样也是可以以配置的方式实现service注入(细节部分在此不再区分描述),但也可以不使用,不过需要导入struts2中提供的 Struts 2 Spring Libraries ,后者在开发中大大简化了sping中对控制器的配置;
Struts 2 Spring Libraries 包含以下jar包:
spring-beans-2.5.6.jar
spring-context-2.5.6.jar
spring-core-2.5.6.jar
spring-web-2.5.6.jar
struts2-spring-plugin-2.1.8.1.jar
可以直接在myeclipse中勾选导入,如图: