1. 程式人生 > >征服Spring--設計思想篇

征服Spring--設計思想篇

Spring設計目標:

Spring是一個輕量級的框架,是一個針對Javabean生命週期,以及物件之間依賴關係進行管理的輕量級容器框架

在程式設計中一個物件要完成一定的邏輯操作,需要依賴很多物件來幫助完成,這樣類之間就形成了強大的依賴關係。修改一個地方往往牽扯到修改許多的地方。在Spring容器技術開發出來之後,類之間的依賴關係就不需要寫在程式碼中了。容器可以管理物件之間的依賴關係,我們自己不需要建立物件,這部分物件通過容器來完成。

面向Bean

Spring是面向Bean的程式設計(Bean Oriented Programming,BOP),Bean才是Spring中真正的主角。Spring中沒有bean也就沒有Spring存在的意義了。Spring通過配置檔案或者註解來管理物件以及物件之間的依賴關係。

控制反轉(IOC)和依賴注入(DI)

在Spring中,最總要的思想就是控制反轉(IOC),依賴注入(DI)是控制反轉思想的實現方式。

一句話說控制反轉思想:在沒有控制反轉前,一個物件使用另一個物件需要自己動手去new這個對下,也就是寫在程式碼中。在有控制反轉技術以後。物件的建立由Spring容器去完成。Spring容器實現所依賴物件關係的建立和協調,物件只關注業務邏輯本身。

在Spring中所有類都要在IOC容器中登記。告訴Spring容器你是什麼類,你的物件需要什麼物件。在系統執行的時候,容器會自動把你所需要的物件給你。也把你給其他需要你的物件。所有物件的建立,銷燬都由Spring容器來控制。也就是說控制生命週期的不再是引用它的物件,而是Spring容器。

在系統執行中,IOC容器動態的向某一個物件提供它所需要的其他物件。這一點是通過自動注入(DI)技術來實現的。自動注入式通過Java動態反射來實現的。這一點後面會詳細探索。

IOC容器關鍵點:

需要被Spring容器管理的物件必須定義到Spring容器中。

需要定義構造器或者getter,setter方法讓Spring將物件注入過來。

面向切面程式設計(AOP)

面向切面程式設計(Aspect-Oriented Programming),Aspect 是一種模組化的機制。AOP的本質是在一系列縱向的控制流程中,把那些相同的子流程提取成一個橫向的面,面向這些橫向的面進行操作。