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

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

Spring的ioc和aop的原理

更新時間:2022-04-15 08:48:00 來源:動力節點 瀏覽1220次

Spring的ioc和aop的原理是什么?動力節點小編來為大家解答。

IoC(Inversion of Control):

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

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

AOP(A s pect Oriented Programming):

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

AOP 一般是通過代理實現的。使用代理會決定目標是什么,攔截哪些點(方法),攔截后做什么。

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

PointCut(切點):定義截取的joinPoint。目標:代理的目標對象。

對于異常處理、日志功能、權限檢查、事務等,都是通過各個模塊運行的,所以進行了AOP。

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

公共對象 getProxy(最終對象 targetObj) {<wbr></wbr>
對象 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>//代理類接口的字節碼</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>new InvocationHandler() {<wbr><wbr>//類似回調函數代理函數在里面實現</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>//預通知</wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>method.invoke(targetObj, args); <wbr>//攔截點</wbr></wbr></wbr></wbr></wbr></wbr>
后通知();<wbr><wbr>//發布通知</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>//必須是已執行通知</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的兩個原理,如何自由配置,那你得花點時間去學習一下,你就會明白在原理和思路上你掌握了哪些配置方法。如果大家對此比較感興趣,想了解更多相關知識,不妨來關注一下動力節點的Spring教程,里面的課程內容細致全面,很適合沒有基礎的小伙伴學習哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 俄罗斯一级毛片免费视频 | 国产毛片儿 | 国内自拍tv在线 | 亚洲免费一级视频 | 国产精品9999久久久久 | 四虎影院海外永久 | 狠狠色狠狠色综合网 | 香蕉一区二区三区观 | 国产日韩欧美一区二区 | 亚洲情区| 精品一区二区三区中文字幕 | 日本亚洲欧美 | 国产大片91精品免费看3 | 欧美精品在线观看 | 夜夜夜夜猛噜噜噜噜噜 | 青青草免费在线视频 | 亚洲成人国产 | 色费女人18毛片a级视频在线 | 久久久精品午夜免费不卡 | 欧美日韩在线成人 | 一级特级aaa毛片 | 伊人久久成人成综合网222 | 亚洲精品国产成人 | 欧美午夜在线观看理论片 | 九九九九热| 午夜精品久久久久久久99热 | 麻豆亚洲精品一区二区 | 91精品国产免费久久国语麻豆 | 国产一区精品视频 | 天天爱天天操 | 国产精品久久视频 | 99久久免费国产香蕉麻豆 | 国产成人福利在线 | 国产高清免费 | 68久久久久欧美精品观看 | 午夜dj影院在线视频观看完整 | 一级毛片免费播放视频 | 成人在线视频观看 | 97在线观看视频免费 | 国产波多野结衣中文在线播放 | 久久免费观看国产精品 |