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

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



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

          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" />

          通過Spring框架的ContextLoaderPlugIn,把action類交由Spring容器來管理
          這里需要說明的一點是:是否需要在struts-config-default.xml文件中一起加載所有的action-servlets信息,還是對應著分別加載。當然現在的系統中是一起加載的,不過如果分開加載,也可以很好的分模塊開發,這邊只是探討,作個說明而已。


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


          實現Tiles技術的嫁接


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

          在Struts框架中采用Validator框架的驗證機制
          2、spring(app-config文件夾下)
          app-config文件夾下主要有applicationContext_default.xml、applicationContext_admin.xml、applicationContext_order.xml、applicationContext.xml、dataAccessContext-local.xml
          這里主要是設置系統所需要的業務邏輯bean,完成符合spring-beans.dtd的定義規則
          分別解釋一下各個配置文件的主要用途:
          applicationContext.xml--定義一些共通的bean,列舉如下:
          AbstractFacadeBean(com.iplan.portal.framework.base.BaseFacade--所有Facade的抽象類,主要完成對DAO的配置,以便為所有FACADE提供DAO支持)
          AbstractServiceBean(com.iplan.portal.framework.base.BaseService--所有ServiceImp的抽象類,主要完成對DAO的配置,以便為所有ServiceImp提供DAO支持)
          AppRelationCore(com.iplan.portal.framework.base.AppRelationCore--系統各模塊間關系的維護類,既所有模塊暴露的Facade通過此類來訪問,每添加一個Facade模塊,需要在這里追加)
          baseTransactionProxy(通用的事務代理,這樣所有的Service、Facade都可以繼承這個事務代理)
          這里定義的都是些基礎設施,可以看到都是framework.base下的類
          dataAccessContext-local.xml--定義本地數據源信息
          說明:為了系統運作的簡單化,這里設置了本地數據源信息(以local為標志),當然如果為了分布式運作,采用jta事務,可以定義相應的設置 這里主要定義了數據源dataSource、hibernate的SessionFactory(mySessionFactory)、hibernate的事務管理器
          (myTransactionManager)、共通的訪問數據庫接口commonDAO(com.iplan.portal.framework.base.hibernate.CommonDAO)
          以上兩個都是系統運作的基礎,其間有一些聯系,大家可以參照一下具體的配置文件即可
          其它的三個配置文件都是按照功能模塊來劃分的,都是具體業務方面的信息,這里不在詳細描述,可以自行參考配置文件
          3、struts和spring的結合處理(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"和相應的struts配置文件中的path屬性要一一對應起來,這樣action類的生命周期將交由spring容器來管理了
          4、模版技術(tiles-config文件夾下)
          5、驗證技術(validation-config文件夾下)
          這兩項就不在多做闡述了,應該應用的比較多了
          除了WEB-INF/config下的五大類配置文件外,對其他一些需要用到的配置信息作一個比較簡單的介紹
          hibernate.cfg.xml:
          設置pojo信息,相關的SessionFactory配置已經移植到了Spring的dataAccessContext-local.xml配置文件中去了
          hibernate.properties
          設置一些有關hibernate的屬性信息,比如:driver、url、username、password、dialect、Connection Pool等等
          ApplicationResources.properties
          i18n國際化資源信息
          displaytag.properties
          display標簽的配置信息
          default-db.script、default-db.properties默認的hsqldb的數據結構、數據
          log4j.properties日志配置文件
          最后,還有一個非常重要的配置信息:web.xml
          有關于各種信息的配置,web.xml里面有比較詳細的說明,這里就不在多闡述了
          這里描述一下應用服務器啟動后,如何加載這些配置信息已供應用系統運作的
          第一步,當然是讀取web.xml中的配置信息,可以啟動
          Log4j信息
          通過ContextLoaderListener、讀取contextConfigLocation信息(spring(app-config文件夾下)),加載springapp-config文件夾下的配置信息
          HSQLDB數據庫
          啟動struts的ActionServlet,相應的config被加載
          第二步,從第一步可以看到struts(struts-config文件夾下)、spring(app-config文件夾下)都已經被加載
          那么struts和spring的結合處理(action-servlets-config文件夾下)、模版技術(tiles-config文件夾下)、驗證技術(validation-config文件夾下)如何被加載呢?
          struts和spring的結合處理(action-servlets-config文件夾下)通過struts(struts-config文件夾下)下的struts-config-default.xml加載 模版技術(tiles-config文件夾下)、驗證技術(validation-config文件夾下)分別通過struts(struts-config文件夾下)下的各個對應的功能模塊配置文件加載
          通過以上兩步加載,把五個大的配置信息都加載到系統中去了
          以上是關系系統配置文件的一些說明,希望通過這些能對整個系統的架構有一個比較清晰的了解
          已經轉移到 好·色之徒--我的博客、我的生活

          Feedback

          # re: 采用struts+hibernate+spring開發的一個web系統(3)  回復  更多評論   

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

          # re: 采用struts+hibernate+spring開發的一個web系統(3)  回復  更多評論   

          2006-10-13 14:04 by 1
          如果你是編程高手,這里將是你一個展現自我的新舞臺----www.mylinux.com.cn

          # re: 采用struts spring hibernate開發的一個web系統(3)[未登錄]  回復  更多評論   

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

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

          Copyright © 城市劣人

          好·色之徒
          主站蜘蛛池模板: 青神县| 吉林市| 阿瓦提县| 德兴市| 深水埗区| 白城市| 洛宁县| 无为县| 涿州市| 通渭县| 田东县| 宣城市| 吕梁市| 南雄市| 嘉兴市| 叙永县| 辽中县| 水城县| 呼伦贝尔市| 宣武区| 上虞市| 揭阳市| 久治县| 黔东| 嘉善县| 遂平县| 云南省| 西安市| 荥经县| 仁布县| 建始县| 永福县| 龙海市| 宝丰县| 云霄县| 富川| 芦山县| 南城县| 聂拉木县| 信宜市| 绥化市|