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()
待续。。。