javascript
第一章 Spring基础
第一章 Spring基礎
1.1 Spring介紹
-
Spring是一個框架,框架是高度抽取、可重用的代碼的一種設計。Spring就是多個可重用的模塊的集合,從而形成一個領域的整體解決方案。
-
Spring是一個IOC(DI)和AOP容器框架
Spring的優良特性:
1.2 Spring中的IOC和AOP
Spring的模塊圖:
從下到上依次為:
測試(Test):
Spring的單元測試模塊
核心容器(Core Container):
IOC
? -Beans:Spring Bean相關,如依賴查找、依賴注入
? -Core:核心庫
? -Context:上下文
? -Expression Language:表達式語言
Aop+Aspects(面向切面編程模塊):
數據訪問(Data Assess):
? -JDBC:操作數據庫的模塊
? -ORM(Object Relation Mapping):對象關系映射
? -OXM(Object Relation Mapping) :對象XMl映射
? -JMS:消息服務
? -Transaction:事務
Web(開發Web應用的模塊):
? -web:webSocket
? -Servlet:Servlet
? -Portlet:
? -Struts:
注意:Spring中的包很多,用到那個,就導入那個,導入不需要使用的包會降低性能
1.2.1 IOC
IOC是Inversion of control的縮寫 ,翻譯為控制反轉,它不是什么技術,而是一種設計思想。
控制:在以前,我們是自己在對象內部通過new去創建對象,也就是程序主動去創建依賴對象。在Spring中,IOC容器來控制對象的創建。
反轉:在以前,由我們去主動控制去獲取依賴對象,也就是正轉。在Spring中,由IOC容器來幫忙創建以及注入依賴對象,我們是被動的使用Spring注入的依賴對象,也就是反轉。
1.2.2 DI
DI是英文Dependency Injection的縮寫,翻譯為依賴注入。
應用程序因為需要IOC容器來提供對象所需要的的外部資源,所以程序依賴IOC容器,同時,IOC容器知道某個組件運行時需要哪些其他組件(對象),然后通過反射的形式將容器中準備好的對象(利用反射給屬性賦值)注入到這個組件中。
IOC的一個重點就是在系統運行中,動態的向某個對象提供它依賴的對象,這就是通過DI來實現的。
例如,我們經常會寫這樣的代碼:
// 主動創建對象 getIceCola{Ice ice = new Ice("-2C");Cola cola = new Cloa(400);Cup cup = new Cup("大杯");Machin machin = new Machin("冰可樂機");return machin.makeIceCola(ice, cola, cup); }上面創建對象的方式就是主動式,上面的例子比較簡單,設想一下,如果需要創建很多對象,且這些對象初始化需要很多變量,是不是會很麻煩。
在Spring中,采用的是被動式的創建對象,也就是對象的創建和控制權交給了Spring,我們是被動的來接收和使用Spring給我們提供的對象。當然,前提是需要配置好這些對象。
使用Spring之后,我們這樣寫代碼:
// 主動創建對象 getIceCola{@AutowiredIce ice;@AutowiredCola cola;@AutowiredCup cup;@AutowiredMachin machin;return machin.makeIceCola(ice, cola, cup); }容器管理了所有的組件(有功能的類),上面的getIceCola也可以受容器管理。當容器發現BookServlet需要用到BookService類,它就會創建BookService對象,也就是說,之前,我們需要某個對象,我們需要主動的去new,但在Spring中,Spring發現我們需要某個類的對象時,它會自動幫我們創建,程序是被動的去接收IOC提供的對象。
總結
以上是生活随笔為你收集整理的第一章 Spring基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存频率选择:不只看频率,还需考虑CPU
- 下一篇: 为什么fm1支持DDR3内存条?揭秘性能