小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

整合Struts2與Spring的步驟(轉(zhuǎn))

 fanjj 2009-03-28
一、需要的JAR文件為:Spring和Struts2框架本身需要的JAR文件以及他們所依賴的JAR文件,比如commons-logging.jar等等,另外還需要Struts2發(fā)布包中的struts2-spring-plugin-x.xx.jar。
二、在web.xml中增加WebApplicationContext的相應(yīng)配置,以下兩種配置方式本質(zhì)是一樣的。 1. Servlet 2.3及以上版本可以使用監(jiān)聽器,相應(yīng)配置如下: contextConfigLocation /WEB-INF/classes/applicationContext.xml org.springframework.web.context.ContextLoaderListener 如果spring配置文件被命名為applicationContext.xml,并且放在WEB-INF目錄下,則不需要配置,因?yàn)镃ontextLoaderListener默認(rèn)在WEB-INF目錄下尋找名為applicationContext.xml的文件。若存在多個(gè)Spring配置文件,則在中依次列出,之間以逗號隔開。 2. Servlet 2.3以下版本由于不支持,需要配置,格式如下: contextConfigLocation /WEB-INF/classes/applicationContext.xml contextLoaderServlet org.springframework.web.context.ContextLoaderServlet 1 如果spring配置文件被命名為applicationContext.xml,并且放在WEB-INF目錄下,則不需要配置,因?yàn)镃ontextLoaderListener默認(rèn)在WEB-INF目錄下尋找名為applicationContext.xml的文件,或者是名字為contextConfigLocation的ServletContext參數(shù)所指定的文件。由于該Servlet配置只是為了在容器啟動(dòng)時(shí)能啟動(dòng)ContextLoaderServlet使其工作,而不需要引用該Servlet,所以不需要配置。
三、在web.xml中完成加載WebApplicationContext之后,接下來就可以做到Spring和Struts2的整合了。整合有兩種方法,分別敘述如下: 1. 第一種實(shí)現(xiàn)方法: 1) 將Struts的業(yè)務(wù)邏輯控制器類配置在Spring的配置文件中,業(yè)務(wù)邏輯控制器中引用的業(yè)務(wù)類一并注入。注意,必須將業(yè)務(wù)邏輯控制器類配置為scope=”prototype”!示例如下: 2) 在struts.xml或者等效的Struts2配置文件中配置Action時(shí),指定的class屬性為Spring配置文件中相應(yīng)bean的id或者name值。示例如下: /index.jsp 2. 第二種實(shí)現(xiàn)方法: 1) 業(yè)務(wù)類在Spring配置文件中配置,業(yè)務(wù)邏輯控制器類不需要配置,Struts2的Action像沒有整合Spring之前一樣配置,的class屬性指定業(yè)務(wù)邏輯控制器類的全限定名。 2) 業(yè)務(wù)邏輯控制器類中引用的業(yè)務(wù)類不需要自己去初始化,Struts2的Spring插件會(huì)使用bean的自動(dòng)裝配將業(yè)務(wù)類注入進(jìn)來,其實(shí)業(yè)務(wù)邏輯控制器也不是Struts2創(chuàng)建的,而是Struts2的Spring插件創(chuàng)建的。默認(rèn)情況下,插件使用by name的方式裝配,可以通過增加Struts2常量來修改匹配方式:設(shè)置方式為:struts.objectFactory.spring.autoWire = typeName,可選的裝配參數(shù)如下: a) name:等價(jià)于Spring配置中的autowire=”byName”,這是缺省值。 b) type:等價(jià)于Spring配置中的autowire=”byType”。 c) auto:等價(jià)于Spring配置中的autowire=”autodetect”。 d) constructor:等價(jià)于Spring配置中的autowire=” constructor”。
四、如果原先在Struts2中使用了多個(gè)object factory,則需要通過Struts2常量顯式指定object factory,方式如下:struts.objectFactory = spring;如果沒有使用多個(gè)object factory,這一步可以省略。
五、可以通過設(shè)增加Struts2常量來指定是否使用Spring自身的類緩存機(jī)制??梢栽O(shè)定的值為true或false,默認(rèn)為true。設(shè)置方式為:struts.objectFactory.spring.useClassCache = false。六、至此,完成了兩種方式的整合。比較這兩種整合方式,其本質(zhì)是一樣的。不同之處在于,使用第二種自動(dòng)裝配的方式時(shí),由于沒有在Spring中配置業(yè)務(wù)邏輯控制器,所以需要對其配置一些AOP之類的內(nèi)容時(shí)就很難實(shí)現(xiàn)了。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多