大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Spring的ioc和aop的原理

Spring的ioc和aop的原理

更新時(shí)間:2022-04-15 08:48:00 來源:動(dòng)力節(jié)點(diǎn) 瀏覽1355次

Spring的ioc和aop的原理是什么?動(dòng)力節(jié)點(diǎn)小編來為大家解答。

IoC(Inversion of Control):

IoC是指應(yīng)用程序本身不依賴對(duì)象的創(chuàng)建和維護(hù),而是交給外部容器(這里是spring)。這將應(yīng)用程序和對(duì)象解耦,并將控制權(quán)交給外部容器。那就是不要打電話給我,我會(huì)打電話給你!因此,IoC也稱為DI(依賴注入)對(duì)象的創(chuàng)建和維護(hù)依賴于外部容器。

類用戶服務(wù){(diào)
私有 UserDao userDao = new UserDaoImpl(); <wbr>//讓業(yè)務(wù)層和數(shù)據(jù)訪問層耦合在一起,不使用未來的模塊替換。</wbr>
私人用戶道 userDao_IoC = null;
公共無效 SetUserDao(UserDao userDao){
this.userDao_IoC = userDao
}
公共無效保存(用戶用戶){
userDao.save(用戶);
}
}

AOP(A s pect Oriented Programming):

面向方面的編程。就是抽象出一些貫穿各個(gè)模塊的相同功能,然后封裝到一個(gè)surface中。

AOP 一般是通過代理實(shí)現(xiàn)的。使用代理會(huì)決定目標(biāo)是什么,攔截哪些點(diǎn)(方法),攔截后做什么。

JoinPoint(連接點(diǎn)):被截取的點(diǎn)。Advice(通知):JoinPoint攔截前后要做什么。

PointCut(切點(diǎn)):定義截取的joinPoint。目標(biāo):代理的目標(biāo)對(duì)象。

對(duì)于異常處理、日志功能、權(quán)限檢查、事務(wù)等,都是通過各個(gè)模塊運(yùn)行的,所以進(jìn)行了AOP。

代理技術(shù)有面向接口和子類的生成。

公共對(duì)象 getProxy(最終對(duì)象 targetObj) {<wbr></wbr>
對(duì)象 obj =<wbr>Proxy.newProxyInstance(<wbr></wbr></wbr>
<wbr><wbr><wbr><span style="line-height:21px">targetObj</span>.getClass().getClassLoader(), <wbr><wbr><wbr>//代理類類加載器</wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><span style="line-height:21px">targetObj</span>.getClass().getInterfaces(),<wbr><wbr>//代理類接口的字節(jié)碼</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>new InvocationHandler() {<wbr><wbr>//類似回調(diào)函數(shù)代理函數(shù)在里面實(shí)現(xiàn)</wbr></wbr></wbr></wbr>< /wbr>
<wbr><wbr><wbr><wbr><wbr>@Override<wbr></wbr></wbr></wbr></wbr></wbr></wbr>
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable{
<wbr><wbr>試試{<wbr></wbr></wbr></wbr>
beforeAdvice();<wbr><wbr>//預(yù)通知</wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>method.invoke(targetObj, args); <wbr>//攔截點(diǎn)</wbr></wbr></wbr></wbr></wbr></wbr>
后通知();<wbr><wbr>//發(fā)布通知</wbr></wbr>
<wbr><wbr><wbr>}捕獲(異常 e){<wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>exceptionAdvice();<wbr><wbr>//異常通知</wbr></wbr></wbr></wbr></wbr>< /wbr></wbr>
<wbr><wbr><wbr>}終于{<wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> finalAdvice();<wbr><wbr>//必須是已執(zhí)行通知</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr> </wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> }<wbr></wbr></wbr></wbr></wbr> </wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>返回 obj;<wbr></wbr></wbr></wbr></ wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr>}<wbr></wbr></wbr>
<wbr>});<wbr></wbr></wbr>
<wbr>}</wbr>

以上就是spring的兩個(gè)原理,如何自由配置,那你得花點(diǎn)時(shí)間去學(xué)習(xí)一下,你就會(huì)明白在原理和思路上你掌握了哪些配置方法。如果大家對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),不妨來關(guān)注一下動(dòng)力節(jié)點(diǎn)的Spring教程,里面的課程內(nèi)容細(xì)致全面,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí)哦。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: a毛片基地 | 久久久久免费精品国产 | 夜夜操网 | 久久午夜夜伦伦鲁鲁片 | 久久草在线观看视频 | 亚洲精品久久久中文字幕 | 欧美一级毛片一免费 | 免费看久久 | 久久天天操| 在线a亚洲视频播放在线观看 | 亚洲精品一区二区三区不卡 | 亚洲操片 | 国产原创麻豆精品视频 | 99热久久精品最新 | 日本一级毛片a免费播放 | 久久青草免费免费91线频观看 | 亚洲精品日本 | h片免费| 欧美成人精品福利在线视频 | 久久精品国产在热久久2019 | 久久天天躁狠狠躁夜夜2020一 | 91精品91久久久 | 国产毛片在线看 | 欧美精品在线一区 | 四虎hk网址| 国产欧美高清 | 久草在线视频在线观看 | 久久综合九色综合97婷婷女人 | 亚洲精品国产第一区二区三区 | 欧美在线视频网 | 日韩一级黄色录像 | 一级毛片不卡片免费观看 | 欧美一区日韩一区中文字幕页 | 黄色四虎影院 | 欧美综合色另类图片区 | 国产成人91一区二区三区 | 日日干夜夜操视频 | 超级乱淫视频aⅴ播放视频 超级乱淫视频播放日韩 | 成人免费淫片在线费观看 | 久久国产偷 | 看全色黄大色大片免费久黄久 |