1. 如何解決循環(huán)依賴
- prototype不做緩存舆绎,無法提前初始化,因此無法解決
- 構(gòu)造器注入秸歧,由于無法提前初始化厨姚,因此無法解決
- singleton,采用三級(jí)緩存键菱,提前初始化自身(并不是完整初始化谬墙,屬性還沒有注入),保存在第三級(jí)緩存
2. 什么是AOP
面向切面編程,動(dòng)態(tài)地將代碼切入到類的指定方法拭抬、指定位置上部默,而原有邏輯不感知
3. Join point 和 Point cut
join point
是連接點(diǎn),可以進(jìn)行橫向切入的位置
point cut
是符合切點(diǎn)表達(dá)式的連接點(diǎn)造虎,也就是真正被切入的地方傅蹂,切點(diǎn)有助于縮小切面所通知的連接點(diǎn)范圍
所有的方法執(zhí)行都是join point
而 point cut
(哪些方法可以被切入) 是一個(gè)描述信息, 它修飾的是 join point, 通過 point cut, 我們就可以確定哪些 join point 可以被織入 Advice. 因此 join point 和 point cut 本質(zhì)上就是兩個(gè)不同緯度上的東西.
advice 是在 join point 上執(zhí)行的, 而 point cut 規(guī)定了哪些 join point 可以執(zhí)行哪些 advice,advice
描述了在何時(shí)可以執(zhí)行point cut
4. 什么是切面 Aspect
借助Spring框架的幫助算凿,業(yè)務(wù)模塊被合理的縱向分割份蝴,彼此之間互相獨(dú)立
而將這些縱向柱形的業(yè)務(wù)模塊共同的,重復(fù)的部分橫向切分放大氓轰,就稱之為切面