1.引言 2.關於本書 3.依賴註入和應用切麵 4.容納你的bean 5.spring各個版本的特性 1.引言 如上篇博客所述,打算從Spring作為學習java的切入點,那我們開始吧。 2.關於本書 本書分為4個部分: 2.1 第1部分 介紹Spring容器,以及Spring框架的核心 依賴註入和 ...
1.引言
2.關於本書
3.依賴註入和應用切麵
4.容納你的bean
5.spring各個版本的特性
1.引言
如上篇博客所述,打算從Spring作為學習java的切入點,那我們開始吧。
2.關於本書
本書分為4個部分:
2.1 第1部分 介紹Spring容器,以及Spring框架的核心 依賴註入和麵向切麵編程
2.2 第2部分 如何使用Spring來構建web應用程式
2.3 第3部分 關註如何處理和持久化數據
2.4 最後一部分 介紹如何將Spring應用程式與其他系統進行集成
3.依賴註入和應用切麵
3.1 裝配的概念
創建應用組件之間協作的行為通常稱為裝配(wiring)。
3.2 介紹了Spring裝配bean的兩種方式
3.2.1 基於xml的配置
3.2.2 基於java的配置
3.3 如何裝配bean的
Spring通過應用上下文(Application Context)裝載bean的定義並把它們組裝起來。
Spring應用上下文全權負責對象的創建和組裝。
Spring自帶多種應用上下文的實現,它們之間的主要區別在於如何裝載配置
3.4.DI和AOP的好處
DI能夠讓相互協作的軟體組件保持鬆散耦合
AOP允許你把遍佈應用各處的功能分離出來形成可重用的組件,從而使應用具有更高的內聚性並且更加關註自身的業務
詳見:
4.容納你的bean
4.1 Spring容器
Spring容器負責創建對象,裝配它們,配置它們並管理它們的整個生命周期。
Spring容器有兩種類型:
bean工廠(由org.springframework.beans.factory.BeanFactory介面定義),提供基本的DI支持
應用上下文(由org.springframework.context.ApplicationContext介面定義),基於BeanFactory創建,並提供應用框架級別的服務
4.2 Spring自帶的常用應用上下
- AnnotationConfigApplicationContext:從一個或多個基於java的配置類中載入Spring應用上下文
- AnnotationConfigWebApplicationContext:從一個或多個基於java的配置類中載入Spring Web應用上下文
- ClassPathXmlApplicationContext:從類路徑下的從一個或多個xml配置文件中載入上下文定義,把應用上下文的定義文件作為類資源
- FileSystemXmlApplicationContext:從文件系統下的一個或多個xml配置文件中載入上下文定義
- XmlWebApplicationContext:從web應用下的一個或多個xml配置文件中載入上下文定義
4.3 bean的生命周期
- Spring對bean進行實例化
- Spring將值和bean的引用註入到bean對應的屬性中
- 如果bean實現了BeanNameAware介面,Spring將bean的ID傳遞給setBeanName()方法
- 如果bean實現了BeanFactoryAware介面,Spring將調用setBeanFactory()方法,將BeanFactory容器實例傳入
- 如果bean實現了ApplicationContextAware介面,Spring將調用SetApplicationContext()方法,將bean所在的應用上下文的應用傳入進來
- 如果bean實現了beanPostProcessor介面,Spring將調用它們的postProcessBeforeInitialization()方法
- 如果bean實現了InitializingBean介面,Spring將調用它們的afterPropertiesSet()方法,類似的,如果bean使用init-method聲明初始化方法,該方法也會被調用
- 如果bean實現了BeanPostProcessor介面,Spring將調用它們的PostProcessAfterInitialization()方法
- 此時,bean已經準備就緒了,可以被應用程式使用了,它們將一直駐留在應用上下文中,直到應用上下文被銷毀
- 如果bean實現了DisposableBean介面,Spring將調用它的destroy()介面犯法,同樣,如果bean使用了destroymethod聲明瞭銷毀方法,該方法也會被調用
5. spring各個版本的特性
這裡暫時只記錄我接觸的一些內容
Spring 3.2中
RestTemplate和@RestMapping可以支持HTTP PATCH方法;
@Autowired,@Value和@Bean註解能夠作為元註解,用於創建自定義的註入和bean聲明註解;