熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring入門之理解Spring的打包方式

2013-11-23 20:39:02  來源: Java開源技術 

  獲取Spring發布包之後你或許會驚訝的發現Spring開發小組並沒有用單個JAR文件來包含所有代碼而是選擇建立包含有完整發布的單個JAR和個獨立JAR文件來包含對應的Spring組件未來版本的組件JAR文件數量很可能會有所增加可令你更加自如的選擇自己的代碼要包含的特性

  完整發布包

  所有發布版本都提供springjar文件它差不多包含Spring framework類的完整發布包之所以說差不多是因為它實際上並未包含任何mock類這些類隨Spring一起發布作為輔助測試之用這可是Spring開發小組的明智決定因為發布應用時你幾乎從不需要同時分發mock類你只是在開發環境下用它們來輔助測試過程除此之外springjar文件包含Spring main源碼樹裡所有其它類

  組件發布包

  除了springjar文件Spring還包括前面提及的另外個JAR文件其中一個包含mock類另外七個包含Spring framework的獨立組件列出了這些JAR文件並伴有對應組件的說明

  表Spring組件發布包

   JAR文件 說 明 springaopjar 這個JAR文件包含在應用中使用Spring的AOP特性時所需的所有類如果打算使用其它基於AOP的Spring特性比如聲明型事務管理(declarative transaction management)也需要在應用裡包含這個JAR文件 springcontextjar 這個包裡的類為Spring核心提供了大量擴展你可以找到使用Spring ApplicationContext特性(第章有介紹)時所需的全部類以及支持EJBJNDI和郵件集成所需的類此外這個包還囊括Spring遠程調用(remoting)類用來與模板(templating)引擎如Velocity和FreeMarker集成的類以及驗證基類(base validation class)值得注意的是實際上許多類被包含在這個包裡並不是太恰當比如遠程調用和EJB支持之類的特性打包成單獨的JAR文件更為恰當 springcorejar 所有應用都要用到這個JAR文件它包含訪問配置文件創建和管理bean以及進行DI操作相關的所有類如果你的應用只需基本的DI支持該JAR文件足以滿足需要此外該JAR文件還包含一組極為有用的工具類Spring代碼庫大量使用了這些類也可以用在自己的應用中 springdaojar
這個JAR文件囊括Spring DAO支持相關的所有基類還包含用JDBC和Spring的事務抽象層(transaction abstraction layer)進行數據訪問的所有類為了使用聲明型事務支持還需在自己的應用裡包含springaopjar
springmockjar 前面已經提及Spring提供了一整套mock類來輔助應用的測試Spring測試套件使用了其中大量mock類因此它們已久經考驗可令你的應用測試更為簡單至於模擬(mock)HttpServletRequest 和HttpServletResponse類在web應用單元測試中的巨大用處更是毋須贅言 springormjar 這個JAR文件對Spring的標准DAO特性集進行了擴展使其支持HibernateiBATIS和JDO這個JAR文件裡大量的類都依賴springdaojar裡的類毫無疑問你需要同時包含後者將來每個ORM工具或許會單獨打包這樣一來使用iBATIS時你的應用就無需再包含Hibernate和JDO相關的類 springwebjar 這個JAR文件包含web應用使用Spring時所需的核心類包括自動載入ApplicationContext特性的類Struts集成類文件上傳的支持類和大量輔助類用來執行重復性的任務如解析查詢(query)字符串裡的int值 springwebmvcjar 這個JAR文件囊括Spring MVC框架相關的所有類如果你的應用使用了獨立的MVC框架則無需這個JAR文件裡的任何類章會對Spring MVC作更詳細的介紹

  如何選擇發布包

  決定選用哪些發布包其實相當簡單如果你正在構建web應用並將全程使用Spring那麼最好使用springjar文件以免陷入忙於維護不同文件之泥沼同樣的如果你的應用僅僅用到簡單的DI容器那麼只需springcorejar即可搞定如果你對發布的大小要求很高那麼理應精挑細選只取用包含自己所需特性的JAR文件

  注意上述組件發布包的粒度實際上並不是那麼小不過顯然你至少可以避免包含自己的應用不需要的全部類(譯注即還是會包含一些不需要的類)或許你可以設法令整個應用稍稍變小不過節省空間的重頭戲在於如何准確找出自己所需的Spring依賴關系合者納之余者棄之


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28828.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.