javascript
Spring AOP是什么?
面向切面編程(AOP)和面向?qū)ο缶幊?#xff08;OOP)類似,也是一種編程模式。Spring AOP 是基于 AOP 編程模式的一個(gè)框架,它的使用有效減少了系統(tǒng)間的重復(fù)代碼,達(dá)到了模塊間的松耦合目的。
AOP 的全稱是“Aspect Oriented Programming”,即面向切面編程,它將業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行隔離,使開發(fā)人員在編寫業(yè)務(wù)邏輯時(shí)可以專心于核心業(yè)務(wù),從而提高了開發(fā)效率。
AOP 采取橫向抽取機(jī)制,取代了傳統(tǒng)縱向繼承體系的重復(fù)性代碼,其應(yīng)用主要體現(xiàn)在事務(wù)處理、日志管理、權(quán)限控制、異常處理等方面。
目前最流行的 AOP 框架有兩個(gè),分別為 Spring AOP 和 AspectJ。Spring AOP 使用純 Java 實(shí)現(xiàn),不需要專門的編譯過程和類加載器,在運(yùn)行期間通過代理方式向目標(biāo)類植入增強(qiáng)的代碼。
AspectJ 是一個(gè)基于 Java 語言的 AOP 框架,從 Spring 2.0 開始,Spring AOP 引入了對(duì) AspectJ 的支持。AspectJ 擴(kuò)展了 Java 語言,提供了一個(gè)專門的編譯器,在編譯時(shí)提供橫向代碼的植入。
| Joinpoint(連接點(diǎn)) | 指那些被攔截到的點(diǎn),在 Spring 中,可以被動(dòng)態(tài)代理攔截目標(biāo)類的方法。 |
| Pointcut(切入點(diǎn)) | 指要對(duì)哪些 Joinpoint 進(jìn)行攔截,即被攔截的連接點(diǎn)。 |
| Advice(通知) | 指攔截到 Joinpoint 之后要做的事情,即對(duì)切入點(diǎn)增強(qiáng)的內(nèi)容。 |
| Target(目標(biāo)) | 指代理的目標(biāo)對(duì)象。 |
| Weaving(植入) | 指把增強(qiáng)代碼應(yīng)用到目標(biāo)上,生成代理對(duì)象的過程。 |
| Proxy(代理) | 指生成的代理對(duì)象。 |
| Aspect(切面) | 切入點(diǎn)和通知的結(jié)合。 |
總結(jié)
以上是生活随笔為你收集整理的Spring AOP是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL默认约束
- 下一篇: Spring Boot 分布式会话