jinfeng_wang

          G-G-S,D-D-U!

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            400 Posts :: 0 Stories :: 296 Comments :: 0 Trackbacks
          quote="firebody" ]
          至于上面所說的動態代理,給你一個更簡單的說法,比如Spring里的TransactionProxyFactoryBean,他是對支持事務管理的一個代理FactoryBean,利用動態代理,這個類可以不依賴于具體的target 接口,用戶可以隨意選擇target 接口。也不需要用戶再手工根據自己的target 接口擴展一個TransactionProxyFactoryBean。 這樣的一個用到java.lang.reflect的動態代理機制,使得用戶需要編寫的代碼量大大減小,也使得整個框架配置使用趨于一致。[/quote]


          java代碼: 

                  <bean id="someObjectProxy" class="org.springframework.aop.framework.ProxyFactoryBean">
                  <property name="proxyInterfaces">   
                           <value>ISomeInterface</value> 
                          </property>       
                          <property name="target">           
                                  <ref bean="someObject"/>       
                          </property>       
                          <property name="interceptorNames">           
                                  <list>               
                                          <value>lockMixinAdvisor</value>           
                              </list>       
                          </property>   
                  </bean>




          我奇怪的是,既然有下面這個,
          java代碼: 


          <bean id="someObjectProxy" class="org.springframework.aop.framework.ProxyFactoryBean">



          那么程序代碼中, 怎么可以這樣寫?
          java代碼: 


          ISomeInterface someObjectProxy = (ISomeInterface) context
                          .getBean("someObjectProxy");


          注意,這里返回的是ISomeInterface ,而且這個someObjectProxy 對象已經具有了ILock+ISomeInterface 的功能,并且在行為表現的完全和ISomeInterface 一致。

          如果Spring的代碼是預編譯的,那可以產生stub之類的,可這里是怎么實現的,挺讓人奇怪哦,誰能解釋一下么?

          答案 : http://www.javajia.com/article.php?id=919


          只是在這上面再封裝的完美罷了,好好研究dynamic proxy的實現吧。


          此外,還有這一段哦 :)

          AOP的作用可以簡單如下所說:“在一個組件的前后加上一些固定的內容。” 拋開AOP不說,我們自己如果想要寫這東西,無非兩種方式,一個是proxy實現,然后在proxy的前后添加內容;還有一種就是template實現。
          所以在我看來,數據庫層的模板其實也算是一種“AOP”。 不知道有沒人對此有些意見和評述?

          posted on 2005-02-20 22:17 jinfeng_wang 閱讀(1021) 評論(0)  編輯  收藏 所屬分類: spring
          主站蜘蛛池模板: 斗六市| 建平县| 修武县| 临夏县| 泗水县| 陇南市| 永川市| 麻阳| 普兰店市| 婺源县| 合肥市| 府谷县| 永胜县| 中山市| 大姚县| 柘城县| 广水市| 光山县| 娄烦县| 平罗县| 广丰县| 大兴区| 邹平县| 富平县| 富阳市| 开江县| 子洲县| 稷山县| 仁布县| 东丽区| 绍兴县| 宁都县| 双桥区| 新邵县| 古浪县| 剑阁县| 潜江市| 徐州市| 屏东县| 铜梁县| 平阴县|