重要思路
Spring通過面向POJO編程、依賴注入、AOP和模板技術來降低Java開發的複雜性。
依賴注入能夠讓互相協作的軟件組件保持鬆耦合,模塊直接的耦合性是必要的,否則沒法完成工作,但是耦合性需要被妥善管理;
Spring通過AOP實現程序關注點分離,利用AOP,程序員可以使用各種功能層包裹核心業務層;
- Spring旨在通過模板封裝來消除樣板代碼;
容器
容器是Spring框架的核心,負責創建對象、裝配它們、配置它們,管理對象的整個生命週期。
Spring中有兩類容器:Bean Factory(org.springframework.beans.factory.BeanFactory)和Application Context(org.springframework.context.ApplicationContext)。
Bean的生命週期
需要理解Bean的生命週期,每一個步驟都可能利用Spring提供的接口來定製Bean的創建過程。
Spring體系結構
在Spring框架之內,可以發現簡化Java開發的幾種方式,但是在Spring框架之外還存在一個龐大的構建在覈心框架之上的生態圈,它將Spring擴展到不同的領域,例如Web服務、REST、移動開發,甚至NoSQL。下圖是Spring的體系結構圖。
Spring Boot
Spring Boot是一個新的工程,旨在簡化Spring開發自身。Spring Boot通過大量的自動配置技術,可以消去大部分Spring配置。跟現在的微服務潮流相適應,值得關注。
一、裝配Bean
創建對象之間協作關係的行爲被稱爲“裝配”,這也是依賴注入的本質。
Spring4.X提供了三種配置Bean的方式:
- 基於XML文件的顯式配置;
- 基於Java類的顯式配置;
- 隱式的Bean發現和自動裝配。
這三種配置方式之間的選擇並沒有一個標準答案,但是根據當前Spring的發展趨勢——去配置化,我們建議的選擇優先級爲:自動裝配(顯式的配置越少越好)>基於Java類的顯式配置(類型安全)>基於XML文件的顯式配置(最後的選擇)。
1.自動裝配Bean
Spring提供了兩個關鍵點來支持自動裝配:
- Component scanning:Spring自動發現將要在應用上下文中創建的Bean
- Autowiring:Spring自動實現Beans之間的依賴關係;