溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Spring的打包方式是什么

發(fā)布時間:2021-12-31 10:03:57 來源:億速云 閱讀:119 作者:iii 欄目:編程語言

這篇文章主要講解了“Spring的打包方式是什么”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Spring的打包方式是什么”吧!

獲取Spring發(fā)布包之后,你或許會驚訝的發(fā)現(xiàn):Spring開發(fā)小組并沒有用單個JAR文件來包含所有代碼,而是選擇建立包含有完整發(fā)布的單個JAR和8個獨立JAR文件來包含對應(yīng)的Spring組件。未來版本的組件JAR文件數(shù)量很可能會有所增加,可令你更加自如的選擇自己的代碼要包含的特性。

完整發(fā)布包

所有發(fā)布版本都提供spring.jar文件,它差不多包含Spring framework類的完整發(fā)布包。之所以說“差不多”是因為它實際上并未包含任何mock類,這些類隨Spring一起發(fā)布,作為輔助測試之用。這可是Spring開發(fā)小組的明智決定,因為發(fā)布應(yīng)用時你幾乎從不需要同時分發(fā)mock類;你只是在開發(fā)環(huán)境下用它們來輔助測試過程。除此之外,spring.jar文件包含Spring main源碼樹里所有其它類。

組件發(fā)布包

除了spring.jar文件,Spring還包括前面提及的另外8個JAR文件;其中一個包含mock類,另外七個包含Spring framework的獨立組件。表2-1列出了這些JAR文件,并伴有對應(yīng)組件的說明。

表2-1:Spring組件發(fā)布包

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

如何選擇發(fā)布包

決定選用哪些發(fā)布包其實相當(dāng)簡單。如果你正在構(gòu)建web應(yīng)用并將全程使用Spring,那么最好使用spring.jar文件,以免陷入忙于維護不同文件之泥沼。同樣的,如果你的應(yīng)用僅僅用到簡單的DI容器,那么只需spring-core.jar即可搞定。如果你對發(fā)布的大小要求很高,那么理應(yīng)精挑細選,只取用包含自己所需特性的JAR文件。

注意上述組件發(fā)布包的粒度實際上并不是那么??;不過顯然你至少可以避免包含自己的應(yīng)用不需要的全部類(譯注:即還是會包含一些不需要的類)?;蛟S你可以設(shè)法令整個應(yīng)用稍稍變小,不過節(jié)省空間的重頭戲在于如何準(zhǔn)確找出自己所需的Spring依賴關(guān)系,合者納之,余者棄之。

感謝各位的閱讀,以上就是“Spring的打包方式是什么”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Spring的打包方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI