簡化Java開發(fā)
Spring采取了以下4種關鍵策略:
- 基于POJO的輕量級和最小侵入性編程
- 通過依賴注入和面向接口實現(xiàn)松耦合
- 基于切面和慣例進行聲明式編程
- 通過切面和模板減少樣板式代碼
DI(依賴注入)
目的:實現(xiàn)松耦合
傳統(tǒng):兩個類互相協(xié)作時,每個對象負責管理與自己相互協(xié)作的對象(即它所依賴的對象)的引用纺裁,這將會導致高度耦合和難以測試的代碼丧鸯。
Spring:通過依賴注入穆刻,對象的依賴關系將有系統(tǒng)中負責協(xié)調(diào)各對象的第三方組件在創(chuàng)建對象的時候進行設定榜轿。對象無需自行創(chuàng)建或管理他們的依賴關系飞傀。
AOP(面向切面編程)
目的:分離功能形成可重用的組件
多個組件中分散著多個系統(tǒng)服務:
1. 實現(xiàn)系統(tǒng)服務的功能代碼將會重復出現(xiàn)在多個組件中
2. 組件會因為那些與自身核心業(yè)務無關的代碼變得混亂
AOP將這些服務模塊化砸烦,并以聲明的方式將他們應用到組件中。
Spring容器
應用上下文:
- AnnotationConfigApplicationContext:從一個或多個基于Java的配置類中加載Spring應用上下文脑沿。
- AnnotationConfigWebApplicationContext:從一個或多個基于Java的配置類中加載Spring Web應用上下文措近。
- ClassPathXmlApplicationContext:從類路徑下的一個或多個XML配置文件中加載上下文定義阁谆,把應用上下文的定義文件作為類資源逗宁。
- FileSystemXmlapplicationcontext:從文件系統(tǒng)下的一個或多個XML配置文件中加載上下文定義。
- XmlWebApplicationContext:從Web應用下的一個或多個XML配置文件中加載上下文定義梦湘。
Spring模塊
裝配Bean
三種方式:
- 自動化裝配Bean
- 通過JavaConfig裝配Bean
- XML裝配Bean