1.IOC和DI編程
IOC和DI是Spring核心思想不一樣方面的描述,IOC和DI是差很少的概念,重要特徵是接口依賴,是把對象關係推遲到運行時去肯定緩存
1.1控制反轉(Inversion of Control):框架
控制反轉是一個重要的面向以對象編程的法則來削減計算機程序的耦合問題,也是輕量級Spring框架的核心,beans。spa
IOC控制反轉:建立對象實例控制權從代碼中剝離到IOC容器控制,就是在XML文件控制,側重原理。代理
對於面向接口編程的應用IOC的作法:對象A依賴接口C,接口C由B來實現,也就是說對象A並不能直接控制B,而是由實現接口C的B去處理,日誌
這樣一來也就是控制反轉過來了,是由B來決定的,而不是A。對象
1.2DI依賴注入(Dependency Injection):索引
建立對象實例時,爲這個對象注入屬性值或其餘對象實例,側重實現。接口
它是一個初始化實例的過程,分爲三種:1.setter based 2.constructor based 3.interface based,在Spring中就是應用前兩種事務
但不單單是初始化實例,而是用接口的概念去實現依賴注入。靜態的看,是依賴一個接口但實際運行起來是依賴接口的實現類。
2.AOP
aop(Aspact Oriented Programming)
咱們構建系統的目的是解決業務問題,卻要維護如此繁多且複雜的多個方面的事情,增長了開發、擴展和維護的難度。這些方面又都是不可或缺的,不能丟開無論。怎樣才 能「專心」作事?
AOP的目標(做用):讓咱們能夠「專心作事」 日誌記錄,事務處理,異常捕獲,緩存操做。
AOP原理
將複雜的需求分解出不一樣方面,將散佈在系統中的公共功能集中解決
採用代理機制組裝起來運行,在不改變原程序的基礎上對代碼段進行加強處理,增長新的功能
3.構造注入
在Spring配置文件中經過<constructor-arg>元素爲構造方法傳參
注意:
1.一個<constructor-arg>元素表示構造方法的一個參數,且使用時不區分順序。
2.經過<constructor-arg>元素的index 屬性能夠指定該參數的位置索引,位置從0 開始。
3.<constructor-arg>元素還提供了type 屬性用來指定參數的類型,避免字符串和基本數據