好·色之徒
          已經(jīng)轉(zhuǎn)移到 好·色之徒--我的博客、我的生活
          ?
          從配置文件說(shuō)起
          在WEB-INF/config下有多種配置文件,這里作個(gè)介紹,對(duì)項(xiàng)目的開(kāi)發(fā)很有意義
          主要涉及到了struts(struts-config文件夾下) 、spring(app-config文件夾下) 、struts和spring的結(jié)合處理(action-servlets-config文件夾下) 、 模版技術(shù)(tiles-config文件夾下) 、驗(yàn)證技術(shù)(validation-config文件夾下)
          到這里,或許會(huì)留意到?jīng)]有提及hibernate,有關(guān)hibernate的設(shè)置,也是通過(guò)spring來(lái)配置的,在后面的spring文件中會(huì)看到,有關(guān)hibernate.cfg.xml則存放在classpath下,需要用到的hibernate屬性配置信息hibernate.properties也存放在classpath下
          這些配置信息是整個(gè)系統(tǒng)的裝配總線,通過(guò)這些xml的配置,把所有的資源串在了一起。
          這里還要強(qiáng)調(diào)一個(gè)信息,這些配置文件都是按照功能模塊來(lái)劃分的,比如現(xiàn)在講解的這個(gè)系統(tǒng)中,除了默認(rèn)的default外,還劃分了order(訂單處理系統(tǒng))、admin(后臺(tái)管理系統(tǒng)),這樣設(shè)置的優(yōu)勢(shì)在于很好的擴(kuò)展系統(tǒng),降低耦合性,同時(shí)條理也比較清晰,便于管理。
          下面分別介紹一下各個(gè)主要的配置文件內(nèi)容
          1、struts(struts-config文件夾下)
          struts-config文件夾下主要有struts-config-default.xml、struts-config-admin.xml、struts-config-order.xml三個(gè)配置文件
          這里放置的是有關(guān)struts的配置信息,比如form-bean、action,有關(guān)form-bean的配置和一般的struts程序沒(méi)有什么兩樣,這里需要說(shuō)明的是action的配置
          這里舉例一個(gè)配置片斷:

          type="org.springframework.web.struts.DelegatingActionProxy"
          scope="request" validate="true" input="/WEB-INF/jsp/login.jsp">



          注意里面的type屬性,這里設(shè)置的是org.springframework.web.struts.DelegatingActionProxy,正是通過(guò)它來(lái)使得和spring很好的結(jié)合起來(lái),這里你會(huì)發(fā)現(xiàn)沒(méi)有具體的action類,它是通過(guò)struts和spring的結(jié)合處理(action-servlets-config文件夾下)的配置文件來(lái)實(shí)現(xiàn)的,這樣action類也納入到了spring容器的管理體系中去了。
          struts和spring的結(jié)合就是這樣來(lái)實(shí)現(xiàn)的,當(dāng)然除了這種方式以外還有其他的,可以參考:關(guān)于struts中validate的幾種情況
          除了以上的配置信息外,還有幾個(gè)重要的配置,它是結(jié)合Spring、Tiles、Validator等框架的潤(rùn)滑劑,主要是通過(guò)Struts的plug-in技術(shù)來(lái)實(shí)現(xiàn)的,舉例如下:

          className="org.springframework.web.struts.ContextLoaderPlugIn">

          value="/WEB-INF/config/action-servlets-config/action-servlets-default.xml
          /WEB-INF/config/action-servlets-config/action-servlets-order.xml
          /WEB-INF/config/action-servlets-config/action-servlets-admin.xml" />

          通過(guò)Spring框架的ContextLoaderPlugIn,把a(bǔ)ction類交由Spring容器來(lái)管理
          這里需要說(shuō)明的一點(diǎn)是:是否需要在struts-config-default.xml文件中一起加載所有的action-servlets信息,還是對(duì)應(yīng)著分別加載。當(dāng)然現(xiàn)在的系統(tǒng)中是一起加載的,不過(guò)如果分開(kāi)加載,也可以很好的分模塊開(kāi)發(fā),這邊只是探討,作個(gè)說(shuō)明而已。


          value="/WEB-INF/config/tiles-config/tiles-defs-default.xml" />


          實(shí)現(xiàn)Tiles技術(shù)的嫁接


          value="/WEB-INF/config/validation-config/validator-rules-default.xml,
          /WEB-INF/config/validation-config/validation-default.xml" />

          在Struts框架中采用Validator框架的驗(yàn)證機(jī)制
          2、spring(app-config文件夾下)
          app-config文件夾下主要有applicationContext_default.xml、applicationContext_admin.xml、applicationContext_order.xml、applicationContext.xml、dataAccessContext-local.xml
          這里主要是設(shè)置系統(tǒng)所需要的業(yè)務(wù)邏輯bean,完成符合spring-beans.dtd的定義規(guī)則
          分別解釋一下各個(gè)配置文件的主要用途:
          applicationContext.xml--定義一些共通的bean,列舉如下:
          AbstractFacadeBean(com.iplan.portal.framework.base.BaseFacade--所有Facade的抽象類,主要完成對(duì)DAO的配置,以便為所有FACADE提供DAO支持)
          AbstractServiceBean(com.iplan.portal.framework.base.BaseService--所有ServiceImp的抽象類,主要完成對(duì)DAO的配置,以便為所有ServiceImp提供DAO支持)
          AppRelationCore(com.iplan.portal.framework.base.AppRelationCore--系統(tǒng)各模塊間關(guān)系的維護(hù)類,既所有模塊暴露的Facade通過(guò)此類來(lái)訪問(wèn),每添加一個(gè)Facade模塊,需要在這里追加)
          baseTransactionProxy(通用的事務(wù)代理,這樣所有的Service、Facade都可以繼承這個(gè)事務(wù)代理)
          這里定義的都是些基礎(chǔ)設(shè)施,可以看到都是framework.base下的類
          dataAccessContext-local.xml--定義本地?cái)?shù)據(jù)源信息
          說(shuō)明:為了系統(tǒng)運(yùn)作的簡(jiǎn)單化,這里設(shè)置了本地?cái)?shù)據(jù)源信息(以local為標(biāo)志),當(dāng)然如果為了分布式運(yùn)作,采用jta事務(wù),可以定義相應(yīng)的設(shè)置 這里主要定義了數(shù)據(jù)源dataSource、hibernate的SessionFactory(mySessionFactory)、hibernate的事務(wù)管理器
          (myTransactionManager)、共通的訪問(wèn)數(shù)據(jù)庫(kù)接口commonDAO(com.iplan.portal.framework.base.hibernate.CommonDAO)
          以上兩個(gè)都是系統(tǒng)運(yùn)作的基礎(chǔ),其間有一些聯(lián)系,大家可以參照一下具體的配置文件即可
          其它的三個(gè)配置文件都是按照功能模塊來(lái)劃分的,都是具體業(yè)務(wù)方面的信息,這里不在詳細(xì)描述,可以自行參考配置文件
          3、struts和spring的結(jié)合處理(action-servlets-config文件夾下)
          action-servlets-config文件夾下主要有action-servlets-default.xml、action-servlets-admin.xml、action-servlets-order.xml
          這里是action在spring容器下的配置,舉例如下:

          class="com.iplan.portal.start.action.LoginAction">




          這里的name屬性"/loginAction"和相應(yīng)的struts配置文件中的path屬性要一一對(duì)應(yīng)起來(lái),這樣action類的生命周期將交由spring容器來(lái)管理了
          4、模版技術(shù)(tiles-config文件夾下)
          5、驗(yàn)證技術(shù)(validation-config文件夾下)
          這兩項(xiàng)就不在多做闡述了,應(yīng)該應(yīng)用的比較多了
          除了WEB-INF/config下的五大類配置文件外,對(duì)其他一些需要用到的配置信息作一個(gè)比較簡(jiǎn)單的介紹
          hibernate.cfg.xml:
          設(shè)置pojo信息,相關(guān)的SessionFactory配置已經(jīng)移植到了Spring的dataAccessContext-local.xml配置文件中去了
          hibernate.properties
          設(shè)置一些有關(guān)hibernate的屬性信息,比如:driver、url、username、password、dialect、Connection Pool等等
          ApplicationResources.properties
          i18n國(guó)際化資源信息
          displaytag.properties
          display標(biāo)簽的配置信息
          default-db.script、default-db.properties默認(rèn)的hsqldb的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)
          log4j.properties日志配置文件
          最后,還有一個(gè)非常重要的配置信息:web.xml
          有關(guān)于各種信息的配置,web.xml里面有比較詳細(xì)的說(shuō)明,這里就不在多闡述了
          這里描述一下應(yīng)用服務(wù)器啟動(dòng)后,如何加載這些配置信息已供應(yīng)用系統(tǒng)運(yùn)作的
          第一步,當(dāng)然是讀取web.xml中的配置信息,可以啟動(dòng)
          Log4j信息
          通過(guò)ContextLoaderListener、讀取contextConfigLocation信息(spring(app-config文件夾下)),加載springapp-config文件夾下的配置信息
          HSQLDB數(shù)據(jù)庫(kù)
          啟動(dòng)struts的ActionServlet,相應(yīng)的config被加載
          第二步,從第一步可以看到struts(struts-config文件夾下)、spring(app-config文件夾下)都已經(jīng)被加載
          那么struts和spring的結(jié)合處理(action-servlets-config文件夾下)、模版技術(shù)(tiles-config文件夾下)、驗(yàn)證技術(shù)(validation-config文件夾下)如何被加載呢?
          struts和spring的結(jié)合處理(action-servlets-config文件夾下)通過(guò)struts(struts-config文件夾下)下的struts-config-default.xml加載 模版技術(shù)(tiles-config文件夾下)、驗(yàn)證技術(shù)(validation-config文件夾下)分別通過(guò)struts(struts-config文件夾下)下的各個(gè)對(duì)應(yīng)的功能模塊配置文件加載
          通過(guò)以上兩步加載,把五個(gè)大的配置信息都加載到系統(tǒng)中去了
          以上是關(guān)系系統(tǒng)配置文件的一些說(shuō)明,希望通過(guò)這些能對(duì)整個(gè)系統(tǒng)的架構(gòu)有一個(gè)比較清晰的了解
          已經(jīng)轉(zhuǎn)移到 好·色之徒--我的博客、我的生活

          Feedback

          # re: 采用struts+hibernate+spring開(kāi)發(fā)的一個(gè)web系統(tǒng)(3)  回復(fù)  更多評(píng)論   

          2006-10-11 10:03 by 123bingbing
          www.mylinux.com.cn 包羅java,linux,數(shù)據(jù)庫(kù),安全等等技術(shù)資料,更有眾多軟件外包項(xiàng)目,所有項(xiàng)目直接與mylinux簽署合同,保證用戶的合法權(quán)利.
          qq群:15096318(已滿) 26343297(已滿) 26343309(已滿) 20767472(已滿) 30440614(已滿)21189212(已滿)

          # re: 采用struts+hibernate+spring開(kāi)發(fā)的一個(gè)web系統(tǒng)(3)  回復(fù)  更多評(píng)論   

          2006-10-13 14:04 by 1
          如果你是編程高手,這里將是你一個(gè)展現(xiàn)自我的新舞臺(tái)----www.mylinux.com.cn

          # re: 采用struts spring hibernate開(kāi)發(fā)的一個(gè)web系統(tǒng)(3)[未登錄](méi)  回復(fù)  更多評(píng)論   

          2008-04-29 10:38 by 溫柔一刀
          applicationContxt.xml文件在那里?

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          posts - 39, comments - 91, trackbacks - 0, articles - 1

          Copyright © 城市劣人

          好·色之徒
          主站蜘蛛池模板: 新巴尔虎右旗| 澎湖县| 老河口市| 麻江县| 黎川县| 平塘县| 乌兰县| 鄂托克前旗| 平潭县| 兰考县| 霍城县| 班玛县| 眉山市| 永定县| 镇巴县| 漳平市| 丰宁| 内黄县| 澎湖县| 天台县| 镇康县| 盐山县| 鹤壁市| 广州市| 香格里拉县| 宁海县| 新乡县| 随州市| 色达县| 墨脱县| 营口市| 伊金霍洛旗| 枞阳县| 东港市| 左权县| 抚顺县| 甘洛县| 仙居县| 八宿县| 平乐县| 和平区|