当前位置: 网学 > 编程文档 > 其他类别 > 正文

浅析Spring.net中的Aop使用

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
意 IMethodInvocation 的 Proceed 方法,proceed方法返回方法的返回值.

四. 切入点操作

4.1 静态切入点

4.1.1 ProxyFactoryObject 显式创建AOP代理

  1. AOP 配置文件  
  2.  <object id="UserValidateTarget" type="Stephen.SpringNet.AOPSample.Servcies.Impl.UserValidate, Servcies"></object> 
  3.    
  4.    <object id="RoundInterceptor" type="Stephen.SpringNet.AOPSample.Servcies.Interceptor.RoundInterceptor, Servcies"></object>   
  5.    
  6.    <object id="UserValidateProxy" type="Spring.Aop.Framework.ProxyFactoryObject, Spring.Aop"> 
  7.    
  8.      <property name="proxyInterfaces" value="Stephen.SpringNet.AOPSample.Servcies.IValidateService"/> 
  9.    
  10.      <property name="target" ref="UserValidateTarget"/> 
  11.    
  12.      <property name="interceptorNames"> 
  13.    
  14.        <list> 
  15.    
  16.          <value>RoundInterceptor</value> 
  17.    
  18.        </list> 
  19.    
  20.      </property> 
  21.    
  22.    </object> 

不过由于显式的创建AOP在要创建多个代理的时候需要重复的配置因此Spring提供了自动代理

4.1.2 ObjectNameAutoProxyCreator 对象名称自动切入点

可以用特定的文本值或通配符匹配目标对象的名称,并为满足条件的目标对象创建AOP代理。该类支持模式匹配字符串,如:"*name","name*",”*name*“和精确文本如"name"。我们可以通过下面这个简单的例子了解一下自动代理的功能。

  1. AOP 配置文件  
  2.  <object id="IValidateProxy" type="Spring.Aop.Framework.AutoProxy.ObjectNameAutoProxyCreator, Spring.Aop">  
  3.      <property name="ObjectNames">  
  4.        <list>  
  5.          <value>*Validate</value>  
  6.        </list>  
  7.      </property>     
  8.      <property name="InterceptorNames" value="RoundInterceptor"></property>  
  9.    </object
  1. 测试方法  
  2.  [TestMethod]  
  3.          public  void ObjectNameAutoProxyCreatorMethodTest()  
  4.          {  
  5.              var context = ContextRegistry.GetContext();  
  6.              IDictionary validates = context.GetObjectsOfType(typeof(IValidateService));  
  7.              foreach (DictionaryEntry validate in validates)  
  8.              {  
  9.                  ((IValidateService) validate.Value).Validate(null);  
  10.    
  11.              }  
  12.          } 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号