CleanAOP--简介

作者: kelvv | 来源:发表于2016-04-24 11:54 被阅读373次

AOP为Aspect Oriented Programming的缩写。 意为:面向切面编程。将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

github: 传送门

一:认识Aop

在日常的编程任务中,很多的代码都是进行一些通用的功能(日志、检测、一层处理等等),然后代码都是机械般的复制粘贴,实际上的业务逻辑代码只占不多的份额。那么,aop能更好的组织通用的代码、然后以标记的方式让某个方法切入,使得业务逻辑和通用代码分离,使其互不影响。
使用Aop的优点
容易扩展新的切面。
业务逻辑与切面逻辑解耦合。
对修改封闭、对扩展开放。

二:使用Aop的缺点

对于一些已存在修饰符的方法无法使用,需添加外围方法包含。

三:CleanAop支持语言

C#

版本历史

最新版本:v2.0.0

v2.0.0:拦截面切入方式改变,优化代理类生成方式。
使用AOP的类不能有带参构造函数bug修复。

v1.0.0:框架搭建完成、支持同步异步、提供Demo切面(错误捕获,log,时间记录)、前后切面选择。

哪里下载?

网盘下载:
v1.0.0
v2.0.0

Demo测试案例

多切面、同步

[TryCatchAttrubute]
[LogAopAttrubute]
[TimeAop]
public virtual void DoWord()
{
    throw new Exception("错误测试");
    Debug.WriteLine("123");
}
结果:

开始捕捉异常([TryCatchAttrubute])
开始执行([LogAopAttrubute])
2015/11/5 0:47:19([TimeAop])
错误测试(异常捕获处理)
执行中([LogAopAttrubute])
执行结束,Void DoWord()方法([LogAopAttrubute])
2015/11/4 23:47:19  [TimeAop])

多切面、异步

[TryCatchAttrubute]
[LogAopAttrubute]
[TimeAop]
public virtual async Task DoWord()
{
    await GetValueAsync(1234.5123, 1.01);
    Debug.WriteLine("123");
    throw new Exception("错误测试");
    Debug.WriteLine("123");
}
结果:

开始捕捉异常([TryCatchAttrubute])
开始执行([LogAopAttrubute])
2015/11/5 1:05:23([TimeAop])
执行中([LogAopAttrubute])
123
处理错误,错误信息为:错误测试([TryCatchAttrubute])
执行结束,System.Threading.Tasks.Task DoWord()方法([LogAopAttrubute])
2015/11/5 0:05:23([TimeAop])

相关文章

  • CleanAOP--简介

    AOP为Aspect Oriented Programming的缩写。 意为:面向切面编程。将日志记录,性能统计,...

  • 18旅游二班各组自我简介汇总

    一组简介 二组简介 三组简介 四组简介 五组简介 六组简介 七组简介 八组简介

  • 简介

    上辈子,洛幽喜欢了东凡一辈子,没有结果,之后她死了,她不后悔,只是为什么她一睁眼,嗯?捏了捏自己的脸,她这是回到了...

  • 简介

    1.主动地去阅读。 2.阅读目的:获得资讯,获得理解 前者为了增进资讯,获得信息,不能增加理解力。后者为了理解更多...

  • 简介

    姓名:赵金星 电话:13903984903 坐标:河南三门峡市陕州区。 三个标签的自我介绍: 1.时间管理践行者 ...

  • 简介

    朱凝不过打错个字,便被天打雷劈回古代。 为毛别人穿个废柴嫡女,她穿个废柴庶女?地位更低了哎 哇喔,别人嫁王爷,她嫁...

  • 简介

    凌波网络考试系统,是一套运行于Windows系统之上的无纸化网络考试软件。包括试卷编辑、分发试卷、学生答卷、自动阅...

  • 简介

    名字:笨小孩 不是富二代的笨小孩为了生活选择了编程。在大多数人眼里可能感觉编程是很无聊很辛苦经常加班的事情,其实人...

  • 简介

    A Native Client web application consists of JavaScript, H...

  • 简介

    选择django作为毕设项目,和日后工作内容。故在简单得做了一个blog和毕设系统之间,想深入了解django,会...

网友评论

    本文标题:CleanAOP--简介

    本文链接:https://www.haomeiwen.com/subject/fqdfrttx.html