<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-42  評(píng)論-349  文章-4  trackbacks-0

           (殘夢(mèng)追月原創(chuàng),轉(zhuǎn)載請(qǐng)注明)

    本文地址:http://m.tkk7.com/cmzy/archive/2008/08/17/222624.html

     

         我們一直使用ProxyFactoryBean來(lái)顯式的創(chuàng)建AOP代理。但是在很多場(chǎng)合,這種方式將會(huì)使編寫配置文件的工作量大大增加;由于要從ProxyFactoryBean獲得代理對(duì)象,也會(huì)使應(yīng)用和Spring之間的耦合度增加。下面介紹使用Spring提供的自動(dòng)代理機(jī)制來(lái)解決這類問題。

    1、使用BeanNameAutoProxyCreator

           Spring提供的BeanNameAutoProxyCreator類允許我們通過(guò)Bean的name屬性來(lái)指定代理的Bean。它暴露了java.lang.String[]類型的beanNames和 interceptorNames屬性。beanNames可以指定被代理的Bean名字列表,支持“*”通配符,例如“*DAO”表示所有名字以“DAO”結(jié)尾的Bean。interceptorNames指定通知(Advice)列表,或者通知者(Advisor)列表。

            下面通過(guò)一個(gè)例程來(lái)演示如何使用BeanNameAutoProxyCreator。在例子中,有兩個(gè)Bean:TestBeanA和BeanB,并在TestMain類中的main方法中調(diào)用其MyMethod()方法。自動(dòng)代理將會(huì)在方法調(diào)用前自動(dòng)的執(zhí)行配置的前置通知,輸出提示信息。

    新建一個(gè)名字為AOP_Test4.10的工程,添加Spring的IoC和AOP庫(kù)后,新建一aop.test包,再分別創(chuàng)建兩個(gè)類TestBeanA和BeanB,添加MyMethod()方法,代碼如下:



      再創(chuàng)建前置通知類BeforeAdvice:

      最后創(chuàng)建含有main方法的測(cè)試類TestMain:

      在配置文件中配置Bean和自動(dòng)代理Bean,完成后代碼如下:

      運(yùn)行主類,輸出結(jié)果如下:

    AutoProxy1

      可以看到,在主類TestMain中,我們是直接從Spring IoC容器中獲取收管Bean而不是像以前那樣從ProxyFactoryBean中獲取代理,但是我們的前置通知BeforeAdvice仍然在TestBeanA對(duì)象的MyMethod()方法執(zhí)行前被觸發(fā),這說(shuō)明我們的自動(dòng)代理正在工作。

     

    2、使用DefaultAdvisorAutoProxyCreator

      DefaultAdvisorAutoProxyCreator允許我們只需定義相應(yīng)的Advisor通知者,就可以完成自動(dòng)代理。配置好DefaultAdvisorAutoProxyCreator受管Bean后,它會(huì)自動(dòng)查找配置文件中定義的Advisor,并將它們作用于所有的Bean。

    修改例程4.10的配置文件,使用DefaultAdvisorAutoProxyCreator來(lái)完成自動(dòng)代理。完成后配置文件代碼如下(本例完整工程代碼見例程4.11):

      運(yùn)行主類輸出結(jié)果如下:

    AutoProxy2



    By:殘夢(mèng)追月
    posted on 2008-08-20 19:02 殘夢(mèng)追月 閱讀(8237) 評(píng)論(11)  編輯  收藏 所屬分類: Spring

    評(píng)論:
    # re: Spring自動(dòng)代理機(jī)制 2008-08-17 22:26 | 殘夢(mèng)追月
    Live Write寫得日志為什么不能用blogjava自帶的編輯器編輯呢?編一次格式就要變……汗啊……  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-08-17 22:37 | BeanSoft
    .... 是很郁悶.  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-08-17 22:43 | 殘夢(mèng)追月
    @BeanSoft
    第一次用Live Writer,很不習(xí)慣……
    今天安裝都花了一個(gè)小時(shí)……
    找它的代碼高亮插件又找了好幾個(gè)小時(shí)……
    簡(jiǎn)直無(wú)語(yǔ)了啊……
    但是還是喜歡現(xiàn)在的新代碼樣式,雖然比不上javaEye的,但也比原來(lái)哪個(gè)好看多了……呵呵。  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-08-18 10:47 | 菠蘿大象
    blogjava的代碼插入真的做不好,太難看了,特別是java代碼插入。應(yīng)該學(xué)一下javaeye的,不過(guò)blogjava一篇文章可以寫很多這點(diǎn)不錯(cuò),不像javaeye一篇文章得分成幾篇發(fā)出來(lái),汗死  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-08-18 13:20 | 殘夢(mèng)追月
    @菠蘿大象
    呵呵,我現(xiàn)在也會(huì)用javaeye那種樣式來(lái)修飾blogjav上的代碼了……呵呵  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-09-03 10:39 | kangojian
    學(xué)習(xí)了 謝謝!敬禮  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2008-09-03 10:59 | 殘夢(mèng)追月
    @kangojian
    不客氣……:-)  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制[未登錄] 2010-08-17 12:54 | eric
    沒有看到其對(duì)應(yīng)的輸出結(jié)果,攔截器的信息沒有打印出來(lái)

    除了此配置外,還需要配置別的東西嗎?  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制[未登錄] 2013-04-20 23:06 | Jason
    org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator

    樓主的第一個(gè)demo貌似得不到那個(gè)效果,至于錯(cuò)誤的原因我還沒找出來(lái)...  回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制 2013-07-19 10:04 | 234567
    他寫的好象不對(duì),缺少一句話:method.invoke();

      回復(fù)  更多評(píng)論
      
    # re: Spring自動(dòng)代理機(jī)制[未登錄] 2014-06-16 17:51 | rosen
    樓主,你這是對(duì)類進(jìn)行代理,需要CGLIB支持,建議新加個(gè)接口,這樣就可以使用JDK代理了。  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲人成77777在线播放网站不卡 亚洲人成77777在线观看网 | 色婷婷六月亚洲婷婷丁香| 亚洲一区二区免费视频| 免费精品久久天干天干| 亚洲av无码专区在线观看素人| 亚洲中文无码av永久| 又黄又爽无遮挡免费视频| 亚洲真人无码永久在线观看| 亚洲第一网站免费视频| 亚洲av无码国产精品色午夜字幕 | 亚洲精品天堂在线观看| 日韩va亚洲va欧洲va国产| 18禁美女黄网站色大片免费观看 | 亚洲av日韩av欧v在线天堂| aaa毛片免费观看| 亚洲av无码无在线观看红杏| 亚洲国产精品视频| 国产精品免费一级在线观看| 你是我的城池营垒免费看 | 99视频在线免费| 亚洲AV女人18毛片水真多| 亚洲 综合 国产 欧洲 丝袜| 免费看大黄高清网站视频在线| 毛片基地看看成人免费| 免费国产在线精品一区| 久久亚洲精品无码VA大香大香| 免费观看国产小粉嫩喷水| 国产精品成人观看视频免费| 黄色a级免费网站| 亚洲人成在线中文字幕| 久久99国产亚洲高清观看首页| 成人亚洲性情网站WWW在线观看| 青青草a免费线观a| 黄网站色视频免费在线观看的a站最新| 亚洲日韩精品A∨片无码加勒比| 亚洲AV无码专区电影在线观看| 好看的亚洲黄色经典| 亚洲AⅤ视频一区二区三区| 亚洲成a人片在线观看久| 久久久久亚洲精品无码网址| 亚洲精品中文字幕无码蜜桃|