AOP||动态代理||AOP专业术语;
AOP:(Aspect Oriented Programming)面向切面編程;
OOP:(Object Oriented Programming )面向?qū)ο缶幊?#xff1b;
面向切面編程:基于OOP基礎(chǔ)之上新的編程思想;
指在程序運(yùn)行期間,將某段代碼動(dòng)態(tài)的切入到指定方法的指定位置進(jìn)行運(yùn)行的這種編程方式,面向切面編程;
eg.場(chǎng)景:計(jì)算器運(yùn)行計(jì)算方法的時(shí)候進(jìn)行日志記錄;
加日志記錄:
1)、直接編寫在方法內(nèi)部;不推薦,修改維護(hù)麻煩;? ? ?
? ? ? ? ? 日志記錄:系統(tǒng)的輔助功能;
? ?? ?????業(yè)務(wù)邏輯:(核心功能)
? ? ? ? ? 耦合;
2)、我們希望的是;
? ? ? ? ??業(yè)務(wù)邏輯:(核心功能);日志模塊;在核心功能運(yùn)行期間,自己動(dòng)態(tài)的加上;
? ? ? ? ? 運(yùn)行的時(shí)候,日志功能可以加上;
? 可以使用動(dòng)態(tài)代理來將日志代碼動(dòng)態(tài)的在目標(biāo)方法執(zhí)行前后先進(jìn)行執(zhí)行;
動(dòng)態(tài)代理:
? ? ?1)、寫起來難;
? ? ?2)、jdk默認(rèn)的動(dòng)態(tài)代理,如果目標(biāo)對(duì)象沒有實(shí)現(xiàn)任何接口,是無法為他創(chuàng)建代理對(duì)象的
? ? ? ? ? ? ?Spring動(dòng)態(tài)代理難;Spring實(shí)現(xiàn)了AOP功能;底層就是動(dòng)態(tài)代理;
? ? ?1)、可以利用Spring一句代碼都不寫的去創(chuàng)建動(dòng)態(tài)代理;
? ? ? ? ? ? ? ?實(shí)現(xiàn)簡(jiǎn)單,而且沒有強(qiáng)制要求目標(biāo)對(duì)象必須實(shí)現(xiàn)接口;
將某段代碼(日志)動(dòng)態(tài)的切入(不把日志代碼寫死在業(yè)務(wù)邏輯方法中)到指定方法(加減乘除)的指定位置(方法的開始、結(jié)束、異常。。。)進(jìn)行運(yùn)行的這種編程方式(Spring簡(jiǎn)化了面向切面編程)
代理對(duì)象和被代理對(duì)象唯一能產(chǎn)生關(guān)聯(lián)就是實(shí)現(xiàn)了同一個(gè)接口
AOP專業(yè)術(shù)語;
總結(jié)
以上是生活随笔為你收集整理的AOP||动态代理||AOP专业术语;的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis的通用命令 || redi
- 下一篇: SpringMVC的概念