spring.net 框架分析(四) AOP 简单示例

  AOP框架是Spring.NET的一个关键组件。Spring.NET的IoC容器与AOP框架是相互独立的,两者完全可以不依赖对方而单独使用,但是AOP做为一个强大的中间件解决方案,完善了IoC容器的功能。

  先看一个概念:

    通知(Advice):AOP框架在某个连接点所采取的行为。通知有多种类型,包括“环绕”通知,“前置”通知和“异常”通知等,后文将对通知类型进行讨论。包括Spring.NET在内的很多AOP框架都把通知建模为拦截器(interceptor),并且会维护一个"包围"在连接点周围的拦截器链。

   然后我们看一个“前置”通知的例子:

   1.先做一个目标对象(Target object),既要被通知的对象。目前Spring.NET的AOP框架要求目标对象必须实现一个以上接口。也就是说,要想让AOP框架支持某个类,该类必须实现至少一个接口。实际上这个限制并没有乍听起来那么麻烦:在任何情况下,面向接口编程都是一个好的习惯。(未来版本的Spring.NET AOP框架已经计划支持代理没有实现任何接口的类。)

     接口代码如下:

 

     实现类代码:

 

    2.前置通知,要实现IMethodBeforeAdvice

      代码如下:

 

    3.主程序

 


  运行程序:

 

tu401

  我们可以看到在方法aoptest()被执行前,前置通知被执行。同理我们可以加入“环绕”通知,“异常”通知和后置通知。

    “环绕”通知要继承IMethodInterceptor接口,,“异常”通知要继承IThrowsAdvice接口,后置通知要继承AfterAdvice 。

  我们还可以完全用配置文件来实现,达到无浸入的目的。

   修改app.config  如下:

    

 

  当然主程序也要改下:

 

 

  搞定 ,我们实现了一个简单的通知。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值