成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WebWork與Spring集成方法淺析

開發 后端
本文向您介紹WebWork與Spring集成,并針對不同的WebWork版本做出不同的配置。

***部分:WebWork2.1與Spring集成

兩種方法:

法一:先WebWork后Spring(利用webwork2-spring.jar集成)

該方法的執行順序是在WeWork與Spring的集成過程中先WebWork,后Spring。

即,首先在xwork.xml中找到待執行的action,如果該action依賴其他bean,再到applicationContext.xml中查找被依賴的bean。

WebWork2的IoC功能實現是在xwork.xml中,指定action類與其他bean的依賴關系。即:

(1)xwork.xml文件

  1. <action name="myAction" class="  
  2. com.ryandaigle.web.actions.MyAction">  
  3. <external-ref name="DAO">myDAO</external-ref>  
  4. <result name="success" type="dispatcher">  
  5. <param name="location">/success.jsp</param>  
  6. </result>  
  7. </action

(2)applicationContext.xml文件

  1. <bean id="myDAO" class="com.ryandaigle.  
  2. persistence.MyDAO" singleton="true" />  

Webwork與Spring集成的具體步驟如下:

1. 下載以下文件:http://www.ryandaigle.com/pebble/images/webwork2-spring.jar

2. 配置xwork.xml

2.1 在xwork.xml中定義action時,采用external-ref來指定依賴的spring bean

  1. <action name="myAction" class="  
  2. com.foo.Action">  
  3. <external-ref name="someDao">someDao  
  4. </external-ref>  
  5. <result name="success" type="dispatcher">  
  6. <param name="location">/success.jsp</param>  
  7. </result>  
  8. </action

2.2 在中指定外部引用解析器

  1. <package name="default" extends="webwork-default" 
  2. externalReferenceResolver="com.atlassian.xwork.  
  3. ext.SpringServletContextReferenceResolver"/> 

SpringServletContextReferenceResolver作用是在applicationContext.xml中解析外部引用的bean

2.3 增加一個攔截器,允許引用作為外部資源進行解析

  1. <interceptors>  
  2. <interceptor name="reference-resolver"   
  3. class="com.opensymphony.xwork.interceptor.  
  4. ExternalReferencesInterceptor"/>  
  5. <interceptor-stack name="myDefaultWebStack">  
  6. <interceptor-ref name="defaultStack"/>  
  7. <interceptor-ref name="reference-resolver"/>  
  8. </interceptor-stack>  
  9. </interceptors>  
  10. <default-interceptor-ref name="myDefaultWebStack"/> 

3. 在web.xml中配置Spring與XWork的外部解析器在同一個Web Context中工作

  1. <!--載入spring配置文件-->  
  2. <context-param>  
  3. <param-name>contextConfigLocation  
  4. </param-name>  
  5. <param-value>  
  6. classpath:/applicationContext.xml  
  7. </param-value>  
  8. </context-param>  
  9. <listener>  
  10. <listener-class>org.springframework.web.  
  11. context.ContextLoaderListener</listener-class>  
  12. </listener>  
  13. <listener>  
  14. <listener-class>com.atlassian.xwork.ext.  
  15. ResolverSetupServletContextListener</listener-class>  
  16. </listener> 

***個偵聽器是spring必需的,無論是否與WebWork集成,都要定義該偵聽器;第二個偵聽器是外部解析器所需要的,作用是通過ServletContext來取出Spring的ApplicationContext,作為WebWork與Spring的“橋梁”。

4.applicationContext.xml文件跟xwork.xml文件的存放路徑一下,都在classpath下

在applicationContext.xml中定義被引用的bean

  1. <bean id="myDAO" class="com.ryandaigle.  
  2. persistence.MyDAO" singleton="true" /> 

說明:

如果不使用WebWork2,完全使用Spring,達到上述效果,在applicationContext.xml中采取類似定義:

  1. <bean id="myAction" class="com.ryandaigle.  
  2. web.actions.MyAction" singleton="false">  
  3. <property name="DAO">  
  4. <ref bean="myDAO"/>  
  5. </property>  
  6. <bean id="myDAO" class="com.ryandaigle.persistence.  
  7. MyDAO" singleton="true" /> 

法二:先Spring后WebWork(利用spring-xwork-integration.jar集成)

該方法在WebWork與Spring集成中執行的順序是先Spring,后WebWork。即,首先由Spring負責wire所有的依賴關系,再由XWork來執行action。

注意:因為XWork為每個action調用生成一個新的類實例,action在Spring的applicationContext.xml中應該配置為prototype。

1. 配置SpringObjectFactory

(0)下載https://xwork-optional.dev.java.net/files/documents/1475/11992/spring-xwork-integration.jar

(1) 可以在web.xml配置

  1. <listener>  
  2. <listener-class>org.springframework.web.  
  3. context.ContextLoaderListener  
  4. </listener-class>  
  5. </listener>  
  6. <listener>  
  7. <listener-class>com.opensymphony.xwork.spring.  
  8. SpringObjectFactoryListener  
  9. </listener-class>  
  10. </listener>  

(2) 或者:在applicationContext.xml配置

  1. <bean id="springObjectFactory" 
  2. class="com.opensymphony.xwork.spring.  
  3. SpringObjectFactory"  
  4. init-method="initObjectFactory"/> 

WebWork與Spring集成以上兩種方法任選一種即可。

2. 在applicationContext.xml中定義bean

  1. <bean name="some-action" class="fully.  
  2. qualified.class.name" singleton="false">  
  3. <property name="someProperty">  
  4. <ref bean="someOtherBean"/>  
  5. </property>  
  6. </bean>  

3. 在xwork.xml中定義action(注意action的class與bean的id相同)

  1. <action name="myAction" class="some-action">  
  2. <result name="success">view.jsp  
  3. </result>  
  4. </action

說明:

該方法與WebWork 2.2中的方法基本相同。

第二部分:WebWork2.2與Spring的集成

Spring是WebWork2.2中***支持的IoC容器。

1 配置webwork.properties文件,指定spring作為webwork的IoC容器

webwork.objectFactory = spring

(1)默認的autowiring模式是:by name

即如果applicationContext.xml文件中的bean id與xwork.xml文件中的action name相同,

(2)如果要改為其他模式:

webwork.objectFactory.spring.autoWire = name|type|auto|constructor

2 配置web.xml文件,啟動Spring偵聽器

  1. <listener>  
  2. <listener-class>org.springframework.web.  
  3. context.ContextLoaderListener  
  4. </listener-class>  
  5. </listener> 

3 在WEB-INF目錄下增加applicationContext.xml文件

例:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"   
  3. "http://www.springframework.org/dtd/spring-beans.dtd">  
  4. <beans default-autowire="autodetect">  
  5. <bean id="personManager" class="com.acme.PersonManager"/>  
  6. ...  
  7. </beans>  

4 置由Spring來初始化action

4.1 在Spring的applicationContext.xml文件中配置bean(即action類)

4.2 將xwork.xml中的action的class屬性,由class名改為Spring中定義的bean名

例如:

(1)applicationContext.xml中,定義bean id是bar

  1. <beans default-autowire="autodetect">  
  2. <bean id="bar" class="com.my.BarClass"   
  3. singleton="false"/>  
  4. ...  
  5. </beans> 

(2)xwork.xml中,action的class="bar",而不是通常的類名

  1. <package name="secure" namespace="  
  2. /secure" extends="default">  
  3. <action name="bar" class="bar">  
  4. <result>bar.ftl</result>  
  5. </action>  
  6. </package> 

 

【編輯推薦】

  1. WebWork注入Servlet方法詳解
  2. WebWork中返回INPUT的原因
  3. WebWork如何實現文件上傳配置過程
  4. 通過WebWork實現HelloWorld
  5. WebWork與Spring+Hibernate的整合
責任編輯:冰荷 來源: javaeye
相關推薦

2009-07-14 14:41:33

Webwork與Spr

2009-07-16 14:58:03

WebWork安裝WebWork配置

2009-07-14 17:53:11

WebWork安裝WebWork配置

2009-07-14 17:20:31

Webwork文件上傳

2023-12-09 17:04:26

nDPIHyperscan

2009-07-09 18:24:00

WebWork與Spr

2009-07-20 13:29:13

xwork.xmlWebWork

2009-07-10 11:07:00

WebWork注入Servlet方法

2022-09-15 23:58:51

機器學習集成數據

2009-06-25 17:13:51

jBPM與Spring

2009-06-25 17:24:06

Hibernate主鍵

2009-07-09 16:22:12

WebWork配置

2009-07-10 12:00:27

2022-09-06 15:00:09

機器學習集成數據集

2009-07-20 14:23:36

Struts與WebW

2013-11-13 13:32:36

Linux系統管理NetApp存儲

2023-08-02 08:40:18

RuoYiSpring

2011-06-10 14:33:38

Qt VC.NET

2019-05-16 09:28:12

集成學習機器學習模型

2009-06-30 17:03:49

Spring集成Str
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 最新中文字幕一区 | 国产我和子的乱视频网站 | 国产成人精品久久二区二区91 | 日韩一区二区三区在线观看视频 | 欧美成人手机在线 | 久草视频在线播放 | 久久91精品久久久久久9鸭 | 亚洲精品一区在线观看 | 午夜欧美一区二区三区在线播放 | 天天干狠狠操 | 国产精品a久久久久 | 国产区在线观看 | 天天拍天天色 | 蜜桃视频在线观看免费视频网站www | 日韩在线不卡 | 国产人成在线观看 | 九热在线| 欧美激情在线精品一区二区三区 | 国产精品欧美一区二区三区 | 精品日韩 | 欧美精品福利视频 | 99久久精品免费看国产免费软件 | 精品久久久久久亚洲精品 | 日韩和的一区二在线 | 久久久久久久久久久国产 | 在线视频 中文字幕 | 2019精品手机国产品在线 | 青青草原精品99久久精品66 | 国产美女精品视频免费观看 | 成人区一区二区三区 | 日韩毛片| 97成人免费 | 在线免费观看视频黄 | 五月花丁香婷婷 | 在线观看精品视频网站 | 久久人人爽人人爽人人片av免费 | 日本免费网 | 一区二区三区四区国产 | 亚洲精品免费在线 | 黄色免费在线观看网站 | 久久99精品久久久久久国产越南 |