1. 程式人生 > >【框架】初入Spring

【框架】初入Spring

開發 輕量級 分開 是我 全部 業務邏輯 depend 需要 連接點

一:簡介

Spring是一個輕量級的企業級開發的一站式解決方案。Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。每一個被Spring管理的對象都被稱為Bean。Spring是一個輕量級控制反轉(IoC)和面向切面(AOP)的容器框架。

二:兩大核心

1:IOC(控制反轉)和DI(依賴註入):在一般的編寫代碼過程中,對象都是我們自己創建的,也是我們自己維護的。但是IOC容器有依賴註入功能,由它創建好的對象則將交給Spring來控制。此時控制權就不在我們手裏了,這就叫控制權反轉。。同時核心控制器是Spring框架最基礎的部分,它提供了依賴註入(DependencyInjection)特征來實現容器對Bean的管理,而依賴註入不能單獨存在,需要在IOC的基礎之上完成。這裏最基本的概念是BeanFactory

,它是任何Spring應用的核心。BeanFactory是工廠模式的一個實現,是IOC容器的實際代表者,它使用IoC將應用配置和依賴說明從實際的應用代碼中分離出來。

四種依賴註入方法:

  • set註入方式
  • 靜態工廠註入方式
  • 構造方法註入方式
  • 基於註解的方式

2:AOP(面向切面編程):比如兩段程序,我們需要對它們做幾乎相同的操作,當然最笨的方法就是兩個的代碼都改變,但這樣費時費力。所以把兩個程序並在一起,想象用刀在同一位置切開,再往其中添加相同的代碼。如日誌管理、異常處理等事務都能使用AOP的方式解決。

把眾多方法中的所有共有代碼全部抽取出來,放置到某個地方集中管理,然後在具體運行時,再由容器動態織入這些共有代碼的話,最起碼可以解決兩個問題:

1. Java EE程序員在編寫具體的業務邏輯處理方法時,只需關心核心的業務邏輯處理,既提高了工作效率,又使代碼變更簡潔優雅。

2. 在日後的維護中由於業務邏輯代碼與共有代碼分開存放,而且共有代碼是集中存放的,因此使維護工作變得簡單輕松。

實現過程:業務邏輯組件在運行過程中,AOP容器會動態創建一個代理對象供使用者調用,該代理對象已經按Java EE程序員的意圖將切面成功切入到目標方法的連接點上,從而使切面的功能與業務邏輯的功能同時得以執行。從原理上講,調用者直接調用的其實是AOP容器動態生成的代理對象,再由代理對象調用目標對象完成原始的業務邏輯處理,而代理對象則已經將切面與業務邏輯

方法進行了合成。

三:優點

1.降低了組件之間的耦合性 ,實現了軟件各層之間的解耦
2.可以使用容易提供的眾多服務,如事務管理,消息服務等
3.容器提供單例模式支持
4.容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能
5.容器提供了眾多的輔助類,能加快應用的開發
6.spring對於主流的應用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring屬於低侵入式設計,代碼的汙染極低
8.獨立於各種應用服務器
9.spring的DI機制降低了業務對象替換的復雜性
10.Spring的高度開放性,並不強制應用完全依賴於Spring,開發者可以自由選擇spring的部分或全部

【框架】初入Spring