首頁 > 其他

java面試經典

2019-12-10 13:52:39

spring裡面的ioc和di是什麼,這個是重點

1

spring框架的核心是IOC(控制反轉)和AOP(面向切面),DI(依賴注入)IOC是個更寬泛的概念,DI是更具體的。IOC是一種思想,而DI是實現IOC的主要技術途徑ioc是目的,di是手段。ioc是指讓生成類的方式由傳統方式(new)反過來,既程式員不呼叫new,需要類的時候由框架注入(di),


2

控制反轉說白了就是把控制權讓出來,交給第三方框架(Spring);由第三方框架幫我們管理bean物件的生命週期以及維護各個bean物件之間的關係!DI的基本原理就是將一些具有工作關係的物件,把一個物件作為屬性值注入給另一個物件!aop面向切面:系統的事務紀錄檔以及異常的一些處理,Spring支援使用者自定義切面


3

DI的實現方式有兩種:1:構造器注入 把容器中的物件作為構造器引數傳入。

2:set方法引數注入(Setter注入) 在容器中通過set注入把一個物件(egg)作為屬性值注入給該物件(EggRice)的set方法的引數, 然後將引數值傳遞給該物件(EggRice)的屬性。 註:set方法注入name屬性值與set方法的簽名有關!


1

3:自動裝配:一定要有set方法!例:autowire="byName" 其目的在於把一個物件作為屬性值注入時;只要指定自動匹配,可以減少xml檔案中的注入設定的程式碼。 byName:按名稱匹配查詢,在容器中查詢是否有於set方法簽名一致的bean ID,如果有則把該物件作為屬性值注入。 byType:按型別匹配查詢,容器在建立物件時,會根據該物件的set方法簽名引數去容器中查詢是否有與對引數型別一致 的物件,如果有,則把該物件作為屬性值注入。 


2

預設使用byName;因為如果容器中需要被注入的物件超過一個,那麼容器不知道把哪個物件作為屬性值注入,則會報錯! -----------------------------------------------------------------------------------------------幾種常見的註解解:@Component:通用註解(Spring的)===》DBUtil類@Named:通用註解(Sun的)@Repository:資料持久層的註解===》DaoImpl類@Service:業務層的註解===》Servlet類


3

@Controller:控制層的註解===》ActiveServlet類@Autowired:自動包裝@Qualifier:識別@Resource:預設匹配規則類似於我們的自動裝配,首先按byName匹配查詢,如果找不到則會按byType匹配查詢。但是如果@Resource(name="XXX"),此時只會按byName匹配查詢,因為在這兒我們指定了按id名稱匹配查詢。


4

Collections類和Arrays類的使用。(重點) A:Collections  排序  二分查詢  發轉 B:Arrays  把陣列變成字串輸出  排序  二分查詢


5

Runtime: (1)每個 Java 應用程式都有一個 Runtime 類範例,使應用程式能夠與其執行的環境相連線。    可以通過 getRuntime 方法獲取當前執行時。 應用程式不能建立自己的 Runtime 類範例。 (2)該類沒有建構函式,也就是它不能直接建立物件,但是它裡裡面的方法又不是靜態的    ,故它一定有一個方法返回本類物件 (3)故該類是單例設計模式,保證在記憶體中只有一個物件 (4)方法摘要:  Process exec(String command) 在單獨的進程中執行指定的字串命令  void gc() 執行垃圾回收器。  static Runtime getRuntime() 返回與當前 Java 應用程式相關的執行時物件  void exit(int status) 通過啟動虛擬機器的關閉序列,終止當前正在執行的 Java 虛擬機器



IT145.com E-mail:sddin#qq.com