Spring.Net 深入讲解

 Spring.net AOP start

 The first day:

           spring.net 精髓在于IOC(控制反转或叫做依赖注入) 和AOP(面向切面编程)在学习spring.net前你必须有一些设计模式方面的知识,如代理(proxy),动态代理(Dynamic Proxy)。本文在叙述时假定你已了解。如有需要请在留言中提出,我会发表一些这方面的文章以供参考。下面是一些概念:

Concepts(概念): 

Aspect 切面。

Advice 拦截器(建议执行的方法即向代理方法插入的切面,也可以理解成要动态注入的方法)。

拦截器类型:

a) IAfterReturningAdvice (代理的方法执行之后执行)

b) IMethodInterceptor (方法拦截器,可以在代理方法执行执行时决定添加什么样的逻辑)

c) IMethodBeforeAdvice(代理方法执行之前执行)

d) IThrowsAdvice (方法出错是执行)

1.1 简单的使用

使用编程方式调用:

在使用之前我们要先准备几个类,清单如下: Aspects 类 四个分别实现了上面提到的四个接口,command要代理的类实现了自定义的功能接口。类的层次结果如下图所示:

a) ConsoleLoggingAfterAdvice类继承了IAfterReturningAdvice接口并实现了AfterReturning方法

具体带吗如下图所示:

 

b) ConsoleLoggingAroundAdvice该类继承了IMethodInterceptor接口并实现了Invoke方法。其中可以通过传入的IMethodInvocation类型的参数invocation并可以通过在invocation.Proceed()方法的前后添加代码来实现你自己的逻辑。并且可以改变该方法返回的具体值。

c) ConsoleLoggingBeforeAdvice该类继承了IMethodBeforeAdvice接口并实现了Before()方法。见下图:

调用时的代码如下图所示:

 

配置文件使用方式,app.config或在web.config中配置:

 

使用时的代码如下:

1.2 Spring.net  IOC()

待续。。。

 

你可能感兴趣的:(Spring.Net 深入讲解)