亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計(jì)算機(jī)等級(jí) > 二級(jí)考試 > Java語言程序設(shè)計(jì) > 考試輔導(dǎo) > 文章內(nèi)容
        

      全國計(jì)算機(jī)等級(jí)考試二級(jí)Java重點(diǎn)內(nèi)容(59)

      中華IT學(xué)院   【 】  [ 2016年12月26日 ]

      1.AOP的概念及優(yōu)點(diǎn)

        Aspect Oriented Programming面向方面編程.

        面對(duì)象編程的關(guān)注點(diǎn)是對(duì)象,面向方面編程以面向?qū)ο缶幊虨榛A(chǔ),關(guān)注點(diǎn)是切面,切面組件可以作用在若干目標(biāo)對(duì)象的方法上,封裝了具有通用性的一些處理.例如日志記錄,事務(wù)處理,異常處理等等.

        面向方面編程優(yōu)點(diǎn):將共通處理封裝成了一個(gè)獨(dú)立組件,利用配置形式作用在了某一批目標(biāo)對(duì)象上,實(shí)現(xiàn)組件的重復(fù)利用,將切面和目標(biāo)對(duì)象解耦,實(shí)現(xiàn)了低耦合應(yīng)用.

         *a.切面(Aspect)

           封裝了共通處理的組件,可用于切入到目標(biāo)對(duì)象的處理方法中

         *b.切入點(diǎn)(Pointcut)

           用于指定目標(biāo)對(duì)象和方法的一個(gè)表達(dá)式.是連接點(diǎn)的集合.

           連接點(diǎn)是切面組件與某一個(gè)目標(biāo)對(duì)象方法的作用點(diǎn),例如方法調(diào)用和異常發(fā)生

         *c.通知(Advice)

           用于指定切面功能切入目標(biāo)對(duì)象方法的位置.例如切入到目標(biāo)方法調(diào)用之前,目標(biāo)方法調(diào)用之后等.

           通知類型:前置通知,后置通知,環(huán)繞通知,最終通知,異常通知

           try{

              //執(zhí)行前置通知

              //執(zhí)行環(huán)繞通知--前置

              執(zhí)行目標(biāo)對(duì)象方法

              //執(zhí)行環(huán)繞通知--后置

              //執(zhí)行后置通知

           }catch(Exception ex){

              //執(zhí)行異常通知

           }finally{

              //執(zhí)行最終通知

           }

       

         d.目標(biāo)對(duì)象(Target)

           需要使用切面功能的,被切入的Bean對(duì)象.使用切入點(diǎn)表達(dá)式指定

         e.動(dòng)態(tài)代理(AutoProxy)

           在Spring采用了AOP之后,從容器取出的目標(biāo)對(duì)象是一個(gè)動(dòng)態(tài)代理類型,調(diào)用代理對(duì)象方法時(shí),代理對(duì)象會(huì)調(diào)用切面功能和目標(biāo)對(duì)象功能.

           動(dòng)態(tài)代理類生成技術(shù):

            有接口的目標(biāo)對(duì)象采用JDK Proxy技術(shù).

            沒有接口的目標(biāo)對(duì)象采用CGLIB技術(shù).

      2.切入點(diǎn)表達(dá)式的定義

         1)方法限定execution

            execution(修飾符? 返回類型 方法名(參數(shù)類型) throws 異常?) 

           a.匹配com.tarena.UserDAO的save()方法

             execution(* com.tarena.UserDAO.save(..))

           b.匹配com.tarena.UserDAO的所有方法

             execution(* com.tarena.UserDAO.*(..))

           c.匹配com.tarena.UserDAO的所有public void方法

             execution(public void com.tarena.UserDAO.*(..))

           d.匹配com.tarena包下所有類型的所有方法

             execution(* com.tarena.*.*(..))

           e.匹配com.tarena包下及其子包所有類型的所有方法

             execution(* com.tarena..*.*(..))

           f.匹配UserDAO中有一個(gè)參數(shù)并且是String類型的方法

             execution(* com.tarena.UserDAO.*(java.lang.String))

        2)類型限定within

          within(類型)

          a.匹配com.tarena.UserDAO的所有方法

             within(com.tarena.UserDAO)

          b.匹配com.tarena包下的所有類的所有方法

            within(com.tarena.*)

          c.匹配com.tarena包下及其子包的所有類的所有方法

            within(com.tarena..*)

        3)id名限定bean

           bean(idOrName屬性值)

          a.匹配容器中所有id或name屬性值以dao結(jié)尾的bean對(duì)象

             bean(*dao)

      分享到:
      本文糾錯(cuò)】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動(dòng)訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照