Spring是一個開源分層的Java SE/Java EE的應用式一站式輕量級架構, 它的核心就是Ioc/Aop
Spring的優點:
1.友善解耦,簡化開發,通過Spring提供的Ioc容器,把對象之間的依賴交由Spring控制.
2.Spring提供的功能,友善AOP面向切面程式設計.
3.聲明式事務的支援,靈活的進行事務的管理,提高寫出代碼的效率和品質,将代碼變得不再
臃腫.
4.對各類優秀架構的支援.
IOC依賴注入:
在傳統的程式設計中,我們需要用某個對象的方法時,需要用new建立對象來使用,而IOC就算将建立對象的過程交給spring架構來執行,也就是容器幫忙建立和注入依賴對象,我們的程式被動的接收IOC容器建立的對象,是以叫控制反轉.
Spring建立對象的例子:
- 首先我們建立一個簡易的Dao層.
spring深入淺出核心技術 - 再建立一個簡易的Service層.
spring深入淺出核心技術 - 配置檔案(Bean.xml). BeanFactory介紹:
spring深入淺出核心技術 - BeanFactory是一個類工廠,和傳統的類工廠不同,傳統的類工廠僅負責構造一個類或幾個類的執行個體。而BeanFactory可以建立并管理各種類的對象,Spring稱這些被建立和管理的Java對象為Bean。
BeanFactory是一個接口,Spring為BeanFactory提供了多種實作,最常用的就是XmlBeanFactory。
BeanFactory接口最主要的方法就是getBean(String beanName),該方法從容器中傳回指定名稱的Bean。
- BeanFactory的擷取對象的三種方式(getBean方法):
- 1.根據name擷取對象
- 2.根據實作的接口類型擷取,這個比較常用
- 3.根據ID擷取對象
關于Bean的生命周期:
通過實作Bean的生命周期接口對Bean進行額外的一些控制,雖然具有一些優點,但是帶來了一個很嚴重的問題,我們的類必須實作這些接口,Bean和Spring緊密的結合在了一起,這就帶來了很大的麻煩。
是以我們一般不使用這些接口,而是通過< bean >的init-method和destory-method屬性來達到我們的初始化和銷毀效果,達到架構解耦的問題。
BeanPostProcessor接口是像插件一樣注冊到Spring容器中,使應用與架構解耦,同時可以為我們完成一些額外的功能。例如可以擷取動态代理,還有實作AOP功能。
利用Spring實作資料庫的增删改查(這裡用删除舉例):
- 引入依賴和配置檔案(注入有3種方法,這裡拿set方法注入)
spring深入淺出核心技術 spring深入淺出核心技術 - ,建立一個賬戶表和實體類 沒有用mybatis架構,先用DButils來實作,建立Dao層和實作類
- 建立Service層和實作類,在配置檔案已經注入建立對象 測試:
spring深入淺出核心技術 spring深入淺出核心技術