專注Java教育13年 全國咨詢/投訴熱線:400-8080-105

          首頁 hot資訊 Spring的ioc和aop的原理

          Spring的ioc和aop的原理

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

          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教程,里面的課程內容細致全面,很適合沒有基礎的小伙伴學習哦。

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

          免費課程推薦 >>
          技術文檔推薦 >>

          返回頂部
          自拍亚洲一区欧美另类 欧美野性肉体狂欢大派对| 无码亚洲成a人片在线观看| 水滴真实偷拍高潮视频| 国语92电影网午夜福利| 无码男男作爱g片在线观看| 欧美阿v高清资源在线老大| 特级毛片打开直接看| 啦啦啦视频在线观看免费观看1| gogo全球专业大尺度高清人体| 国产被弄到高潮正在播放| 战少宠妻不能停小说| 人人妻人人爽人人模夜夜夜| 乌克兰肥妇黑毛bbw| 国产综合亚洲区| xxxx性bbbb欧美| 宠文婚后大肉到处做| 老湿视频免费观看十分钟| 少妇全身裸体作爱| 伦埋琪琪深夜福利| 无码在线超碰| 直接观看黄网站免费| 中文有码亚洲制服av片| 让娇妻尝试三p| 综合图区经典| 可以直接看的免费毛片| av网站免费线看精品| 在免费jizzjizz在线播放| 久青青视频在线观看久| 杨幂真紧好爽全文阅读| 高清成年美女黄网站色大全| 在线v片免费观看视频| http://www.pzhtkkl.com