spring将service注入到Action中(s1和s2)

spring将service注入到Action中



spring与struts1.x集成
方式一:Action交给spring管理,将业务类注入action         
引入 spring-webmvc-struts.jar包到lib下,
struts-config.xml配置:
		<action name="StudentForm" path="/StudentList"
			parameter="actions"
			type="org.springframework.web.struts.DelegatingActionProxy">
			<forward name="list" path="/userList.jsp"/>
		</action>

 
spring配置applicationContext.xml:
    <bean name="/StudentList" class="com.org.momo.action.StudentAction" scope="prototype">
     <property name="studentService" ref="studentService" />
	</bean>

注意:保持spring配置的bean name和struts配置的action path一致

StudentAction.java:
private StudentService studentService ;	
public StudentService getStudentService() {
		return studentService;
	}
	public void setStudentService(StudentService studentService) {
		this.studentService = studentService;
	}


注意:加入上面applicationContext.xml里面的action移到applicationContext-action.xml里面时,
1.需在sturts-config.xml配置applicationContext-action.xml加载路径
	<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
		<set-property property="contextConfigLocation" value="classpath*:applicationContext-struts.xml" />
	</plug-in>
 


方式二:请求首先交给ActionServlet,然后给org.springframework.web.struts.DelegatingRequestProcessor,由这个请求处理器根据请求路径从spring容器获取action对象
 
struts-config.xml:
 
<action path="/searchAction">          
 <!--注意到没有?这里没有配置type属性-->  
    <forward name="success" path="/result.jsp"/>  
</action>  
<controller>  
    <set-property property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>  
</controller>
 


spring配置applicationContext.xml:     
<bean name="/searchAction" class="com.myproject.action.SearchAction" scope="prototype">
            <property name="searchService" ref="searchService"/>
 </bean>
 
 
      
方式三:Action不交给spring管理,直接在Action中实例化应用上下文,然后通过getBean("xxx"),获取相应业务对象
struts配置struts-config.xml:
<action path="/searchAction"  type="com.myproject.action.SearchAction">  
               <forward name="success" path="/result.jsp"/>  
</action>  
           
<action path="/searchAction"  type="com.myproject.action.SearchAction">
               <forward name="success" path="/result.jsp"/>
</action>

     
 
对应的Action处理类:

Actionprivate ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());   
 SearchService searchService=(SearchService)context.getBean("searchService");  
private ApplicationContext context=WebApplicationContextUtils.getWebApplicationContext(this.getServlet().getServletContext());
 SearchService searchService=(SearchService)context.getBean("searchService");
 
 
  
 
struts2.x与spring集成 
struts.properties 配置
struts.objectFactory=spring        #指定struts的action类实例由spring生成
 
struts-config.xml配置       
<action name="search" class="searchAction" method="searchMax">  
                  <result name="success">/result.jsp</result>  
                  <result name="error">/error.jsp</result>  
           </action>
  
      
spring配置文件applicationContext.xml:                 
<bean id="searchAction" class="com.myproject.action.SearchAction" scope="prototype">  
                    <property name="searchService" ref="searchService"/>  
           </bean>  
          
<action name="search" class="searchAction" method="searchMax">
                  <result name="success">/result.jsp</result>
                  <result name="error">/error.jsp</result>
           </action>







猜你喜欢

转载自ewf-momo.iteye.com/blog/1721641