【Spring筆記一】Hello,Spring
Spring簡述
Spring是一個主流的Java Web開發框架,該框架是一個輕量級的開源框架,它是為了解決企業應用開發的複雜性問題而產生的。輕量級並不是指它的 jar包有多大,而是指 Spring是非侵入性的,也就是用 Spring時,不需要實現 Spring提供的任何介面,也不需要繼承任何父類,就能享受到 Spring為我們提供的強大功能。
Spring是一個基於IOC和AOP的結構J2EE系統的框架
IOC 反轉控制 是Spring的基礎,Inversion Of Control 簡單說就是建立物件由以前的程式設計師自己new 構造方法來呼叫,變成了交由Spring建立物件 DI 依賴注入 Dependency Inject. 簡單地說就是拿到的物件的屬性,已經被注入好相關值了,直接使用即可。
AOP 即 Aspect Oriented Program 面向切面程式設計 首先,在面向切面程式設計的思想裡面,把功能分為核心業務功能,和周邊功能。 所謂的核心業務,比如登陸,增加資料,刪除資料都叫核心業務 所謂的周邊功能,比如效能統計,日誌,事務管理等等 周邊功能在Spring的面向切面程式設計AOP思想裡,即被定義為切面 在面向切面程式設計AOP的思想裡面,核心業務功能和切面功能分別獨立進行開發 然後把切面功能和核心業務功能 "編織" 在一起,這就叫AOP
Spring框架的優點
Spring具有簡單,可測試和鬆耦合的特短,從這個角度出發,Spring不僅可以用於伺服器端,也可以用於任何Java應用的開發中。對於Spring框架優點總結如下
1.方便解耦,簡化開發
Spring是一個大工廠,可以將所有物件建立和依賴關係維護交給Spring管理。
2.AOP程式設計的支援
Spring提供面向切面程式設計,可以方便地實現對程式進行許可權攔截,執行監控等功能。
3.宣告式事務的支援
只需要通過配置就可以完成對事務的管理,而無需手動程式設計。
4.方便整合各種優秀框架
Spring不排斥各種優秀的開源框架,其內部提供了對各種優秀框架(如Struct2,Hibernate,Mybatis等)的直接支援。
5.降低JavaEE API的使用難度
Spring對JavaEE開發中非常難用的一些API(JDBC,JavaMail,遠端呼叫等),都提供了封裝,使這些API應用難度大大降低。
Spring的體系結構
Spring框架採用分層架構,它包含一系列的功能要素,被分成大約20個模組,這裡只寫Core Container(核心容器)
Spring的核心容器是其他模組建立的基礎,由Beans模組,Core核心模組,Context上下文模組和Expreession Language表示式語言模組組成,具體介紹如下
1.Beans模組:提供了BeanFactory,是工廠模式的經典實現,Spring將管理物件成為Bean。
2.Core核心模組:提供了Spring框架的基本組成部分,包括IOC和DI功能。
3.Context上文模組:建立在核心和Beans模組的基礎之上,它是訪問定義和配置任何物件的媒介。ApplicationContext介面是上下文模組的焦點。
4.Expreession Language模組:是執行時查詢和操作物件圖的強大的表示式語言。