Spring 簡介

Spring是用于企業(yè)Java應(yīng)用程序開發(fā)的最流行的應(yīng)用程序開發(fā)框架。全球數(shù)百萬開發(fā)人員使用Spring Framework創(chuàng)建高性能、易于測試和可重用的代碼。
Spring Framework是一個開源的Java平臺。它最初由Rod Johnson編寫,并于2003年6月在Apache 2.0許可下首次發(fā)布。
Spring在大小和透明度方面都非常輕巧。Spring Framework的基本版本大小約為2MB。
Spring Framework的核心功能可用于開發(fā)任何Java應(yīng)用程序,但是還有用于在Java EE平臺上構(gòu)建Web應(yīng)用程序的擴展。Spring Framework旨在通過啟用基于POJO的編程模型來使J2EE開發(fā)更易于使用,并促進良好的編程實踐。
使用Spring Framework的好處
以下是使用Spring Framework的幾個重要好處的列表:
Spring使開發(fā)人員能夠使用POJO開發(fā)企業(yè)級應(yīng)用程序。僅使用POJO的好處在于,您不需要EJB容器產(chǎn)品,例如應(yīng)用程序服務(wù)器,但您可以選擇僅使用強大的servlet容器,例如Tomcat或某些商業(yè)產(chǎn)品。
Spring以模塊化的方式組織。盡管軟件包和類的數(shù)量很多,但您只需擔(dān)心您需要的部分并忽略其余部分。
Spring不會重復(fù)發(fā)明輪子,而是真正利用了一些現(xiàn)有技術(shù),例如多個ORM框架、日志框架、JEE、Quartz和JDK定時器以及其他視圖技術(shù)。
使用Spring編寫的應(yīng)用程序易于測試,因為環(huán)境相關(guān)的代碼移動到了該框架中。此外,通過使用類似JavaBean的POJO,更容易使用依賴注入來注入測試數(shù)據(jù)。
Spring的Web框架是一個設(shè)計良好的Web MVC框架,它提供了一個很好的替代方案,可以替代Struts或其他過度設(shè)計或不受歡迎的Web框架。
Spring提供了一種方便的API,用于將特定于技術(shù)的異常(例如由JDBC、Hibernate或JDO引發(fā)的異常)轉(zhuǎn)換為一致的未經(jīng)檢查的異常。
輕量級IoC容器往往非常輕量級,特別是與EJB容器相比。這對于在內(nèi)存和CPU資源受限的計算機上開發(fā)和部署應(yīng)用程序非常有益。
Spring提供了一致的事務(wù)管理接口,可縮小到本地事務(wù)(例如使用單個數(shù)據(jù)庫)并擴展到全局事務(wù)(例如使用JTA)。
依賴注入(DI)
Spring最為人所知的技術(shù)是依賴注入(DI)的Inversion of Control(IoC)風(fēng)格。IoC是一個通用概念,可以用許多不同的方式表達。依賴注入僅是控制反轉(zhuǎn)的一個具體示例。
在編寫復(fù)雜的Java應(yīng)用程序時,應(yīng)用程序類應(yīng)盡可能獨立于其他Java類,以增加重用這些類的可能性并在單元測試時獨立于其他類進行測試。依賴注入有助于將這些類粘合在一起,同時保持它們的獨立性。
依賴注入可以通過向構(gòu)造函數(shù)傳遞參數(shù)或通過后期構(gòu)造使用setter方法來實現(xiàn)。由于依賴注入是Spring Framework的核心,因此我們將在單獨的章節(jié)中使用相關(guān)示例解釋此概念。
面向切面編程(AOP)
Spring的關(guān)鍵組件之一是面向切面編程(AOP)框架。跨越應(yīng)用程序多個點的功能稱為橫切關(guān)注點,這些橫切關(guān)注點在概念上與應(yīng)用程序的業(yè)務(wù)邏輯分開。有各種各樣的常見優(yōu)秀例子,包括日志記錄、聲明性事務(wù)、安全性、緩存等。
OOP中的模塊化關(guān)鍵單元是類,而AOP中的模塊化關(guān)鍵單元是方面。 DI可幫助您將應(yīng)用程序?qū)ο蠼怦睿鳤OP可幫助您將橫切關(guān)注點解耦。
Spring Framework的AOP模塊提供了一種面向方面的編程實現(xiàn),允許您定義方法攔截器和切入點,以清晰地解耦實現(xiàn)應(yīng)該分開的功能的代碼。我們將在單獨的章節(jié)中討論更多有關(guān)Spring AOP概念的內(nèi)容。
最后
為了方便其他設(shè)備和平臺的小伙伴觀看往期文章,鏈接奉上:公眾號搜索Let us Coding