java面試之-spring ioc和aop

面試官問道這個問題基本上是想知道 是否瞭解aop 和ioc的基本概念, 以及大體的實現機制等, 因此我們在回答這個問題時應當首相將概念回答一下, 其次就是應用場景 最後在回答下實現方式等基本ok了

 

1概念:

首先講下aop, aop是和oop對等的一個概念, oop面向對象編程 而 aop是面向切面編程 , 從本質上來講 oop和aop都是編程思想,oop關注的是對象直接的調用關係和模塊之間直接的業務聯繫 ,屬於縱向行爲; aop更關注於模塊之間對象行爲發生時的問題(業務調用和邏輯), 我們可以將這些公共的處理邏輯抽取出來作爲一個面,屬於橫向行爲。

 

ioc 控制反轉/依賴注入, 主要是對象的解耦,將對對象的控制權交給容器,包括對象的創建和銷燬等,我們只需要關注業務邏輯,重要的是 ioc是一種思想!

 

ioc容器對bean的管理方式:

      1>beanFactory ; 2>applicationContext; 注意 applicationContext extends beanFactory!

 

2應用:

aop的主要作用 監控函數/業務邏輯的調用,異常發生等問題,實際應用於 事物,安全和日誌等橫切關注!

 

3aop的實現方式:

使用jdk的動態代理  和 cglib  注意: 對於有接口的類aop是使用jdk的動態代理, 而對於無接口的類或者是抽象類使用cglib, 雖然cglib均可代理,但是其複雜效率低,不能有final方法!

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章