這個開發(fā)手冊的第一部分描述了Spring Framework所有使用到的技術領域。
首先是Spring Framework中的控制翻轉(zhuǎn)(IoC)容器。在完整的闡述了Spring Framework的IoC容器后緊跟的是對Spring的面向方面編程(AOP)技術的全面說明。
Spring Framework擁有自己的AOP框架,這個框架在概念上是十分容易理解的,而且它成功地實現(xiàn)了在Java企業(yè)級開發(fā)中對AOP需求的80%左右。
開發(fā)手冊中還描述了Spring與AspectJ的集成方法。
(當前來說,AspectJ是Java企業(yè)級開發(fā)領域中特性最多、最成熟的AOP實現(xiàn)。)
最后,Spring小組提倡在軟件開發(fā)中運用測試驅(qū)動開發(fā)(TDD)方法,所以在最后涵蓋了Spring對集成測試的支持(包括單元測試的最佳實踐)。
Spring小組發(fā)現(xiàn)正確使用IoC可以讓單元測試和集成測試更容易進行(在類中定義setter方法和適當?shù)臉嬙旆椒ㄗ宩ava類更容易地與測試聯(lián)系起來,
而不用設置服務定位注冊或類似的東西)……希望僅專注于測試的"同學"們,這一章一定會讓你有所收獲。
目錄
- 3. IoC(控制反轉(zhuǎn))容器
- 3.1. 簡介
- 3.2. 基本原理 - 容器和bean
- 3.2.1. 容器
- 3.2.2. 實例化容器
- 3.2.3. 多種bean
- 3.2.4. 使用容器
- 3.3. 依賴
- 3.3.1. 注入依賴
- 3.3.2. 依賴配置詳解
- 3.3.3. 使用
depends-on
- 3.3.4. 延遲初始化bean
- 3.3.5. 自動裝配(autowire)協(xié)作者
- 3.3.6. 依賴檢查
- 3.3.7. 方法注入
- 3.4. Bean的作用域
- 3.4.1. Singleton作用域
- 3.4.2. Prototype作用域
- 3.4.3. Singleton beans和prototype-bean的依賴
- 3.4.4. 其他作用域
- 3.4.5. 自定義作用域
- 3.5. 定制bean特性
- 3.5.1. 生命周期回調(diào)
- 3.5.2. 了解自己
- 3.6. bean定義的繼承
- 3.7. 容器擴展點
- 3.7.1. 用
BeanPostProcessor
定制bean
- 3.7.2. 用
BeanFactoryPostProcessor
定制配置元數(shù)據(jù)
- 3.7.3. 使用
FactoryBean
定制實例化邏輯
- 3.8. The
ApplicationContext
- 3.8.1.
BeanFactory
還是
ApplicationContext
?
- 3.8.2. 利用
MessageSource
實現(xiàn)國際化
- 3.8.3. 事件
- 3.8.4. 底層資源的訪問
- 3.8.5.
ApplicationContext
在WEB應用中的實例化
- 3.9. 粘合代碼和可怕的singleton
- 3.10. 以J2EE RAR文件的形式部署Spring ApplicationContext
- 3.11. 基于注解(Annotation-based)的配置
- 3.11.1.
@Autowired
- 3.11.2. 基于注解的自動連接微調(diào)
- 3.11.3.
CustomAutowireConfigurer
- 3.11.4.
@Resource
- 3.11.5.
@PostConstruct
與 @PreDestroy
- 3.12. 對受管組件的Classpath掃描
- 3.12.1.
@Component
和更多典型化注解
- 3.12.2. 自動檢測組件
- 3.12.3. 使用過濾器自定義掃描
- 3.12.4. 自動檢測組件的命名
- 3.12.5. 為自動檢測的組件提供一個作用域
- 3.12.6. 用注解提供限定符元數(shù)據(jù)
- 3.13. 注冊一個
LoadTimeWeaver
- 4. 資源
- 4.1. 簡介
- 4.2.
Resource
接口
- 4.3. 內(nèi)置
Resource
實現(xiàn)
- 4.3.1.
UrlResource
- 4.3.2.
ClassPathResource
- 4.3.3.
FileSystemResource
- 4.3.4.
ServletContextResource
- 4.3.5.
InputStreamResource
- 4.3.6.
ByteArrayResource
- 4.4.
ResourceLoader
接口
- 4.5.
ResourceLoaderAware
接口
- 4.6. 把
Resource
作為屬性來配置
- 4.7. Application context 和
Resource
路徑
- 4.7.1. 構造application context
- 4.7.2. Application context構造器中資源路徑的通配符
- 4.7.3.
FileSystemResource
說明
- 5. 校驗,數(shù)據(jù)綁定,
BeanWrapper
,與屬性編輯器
- 5.1. 簡介
- 5.2. 使用Spring的
Validator
接口進行校驗
- 5.3. 從錯誤代碼到錯誤信息
- 5.4. Bean處理和
BeanWrapper
- 5.4.1. 設置和獲取屬性值以及嵌套屬性
- 5.4.2. 內(nèi)建的PropertyEditor實現(xiàn)
- 6. 使用Spring進行面向切面編程(AOP)
- 6.1. 簡介
- 6.1.1. AOP概念
- 6.1.2. Spring AOP的功能和目標
- 6.1.3. AOP代理
- 6.2. @AspectJ支持
- 6.2.1. 啟用@AspectJ支持
- 6.2.2. 聲明一個切面
- 6.2.3. 聲明一個切入點(pointcut)
- 6.2.4. 聲明通知
- 6.2.5. 引入(Introduction)
- 6.2.6. 切面實例化模型
- 6.2.7. 例子
- 6.3. 基于Schema的AOP支持
- 6.3.1. 聲明一個切面
- 6.3.2. 聲明一個切入點
- 6.3.3. 聲明通知
- 6.3.4. 引入
- 6.3.5. 切面實例化模型
- 6.3.6. Advisor
- 6.3.7. 例子
- 6.4. AOP聲明風格的選擇
- 6.4.1. Spring AOP還是完全用AspectJ?
- 6.4.2. Spring AOP中使用@AspectJ還是XML?
- 6.5. 混合切面類型
- 6.6. 代理機制
- 6.6.1. 理解AOP代理
- 6.7. 以編程方式創(chuàng)建@AspectJ代理
- 6.8. 在Spring應用中使用AspectJ
- 6.8.1. 在Spring中使用AspectJ進行domain object的依賴注入
- 6.8.2. Spring中其他的AspectJ切面
- 6.8.3. 使用Spring IoC來配置AspectJ的切面
- 6.8.4. 在Spring應用中使用AspectJ加載時織入(LTW)
- 6.9. 更多資源
- 7. Spring AOP APIs
- 7.1. 簡介
- 7.2. Spring中的切入點API
- 7.2.1. 概念
- 7.2.2. 切入點運算
- 7.2.3. AspectJ切入點表達式
- 7.2.4. 便利的切入點實現(xiàn)
- 7.2.5. 切入點的超類
- 7.2.6. 自定義切入點
- 7.3. Spring的通知API
- 7.3.1. 通知的生命周期
- 7.3.2. Spring里的通知類型
- 7.4. Spring里的Advisor API
- 7.5. 使用ProxyFactoryBean創(chuàng)建AOP代理
- 7.5.1. 基礎
- 7.5.2. JavaBean屬性
- 7.5.3. 基于JDK和CGLIB的代理
- 7.5.4. 對接口進行代理
- 7.5.5. 對類進行代理
- 7.5.6. 使用“全局”通知器
- 7.6. 簡化代理定義
- 7.7. 使用ProxyFactory通過編程創(chuàng)建AOP代理
- 7.8. 操作被通知對象
- 7.9. 使用“自動代理(autoproxy)”功能
- 7.9.1. 自動代理bean定義
- 7.9.2. 使用元數(shù)據(jù)驅(qū)動的自動代理
- 7.10. 使用TargetSource
- 7.10.1. 熱交換目標源
- 7.10.2. 池化目標源
- 7.10.3. 原型目標源
- 7.10.4.
ThreadLocal
目標源
- 7.11. 定義新的
Advice
類型
- 7.12. 更多資源
- 8. 測試
- 8.1. 簡介
- 8.2. 單元測試
- 8.2.1. Mock對象
- 8.2.2. 單元測試支持類
- 8.3. 集成測試
- 8.3.1. 概覽
- 8.3.2. 使用哪個支持框架
- 8.3.3. 通用目標
- 8.3.4. JDBC測試支持
- 8.3.5. 常用注解
- 8.3.6. JUnit 3.8遺留支持
- 8.3.7. Spring TestContext Framework
- 8.3.8. PetClinic示例
- 8.4. 更多資源