资讯专栏INFORMATION COLUMN

.NET AOP微型框架发布 --CleanAOP

duan199226 / 2503人阅读

摘要:意为面向切面编程。使用的优点容易扩展新的切面。业务逻辑与切面逻辑解耦合。支持语言版本历史最新版本框架搭建完成支持同步异步提供切面错误捕获,,时间记录前后切面选择。

CleanAOP--简介
作者:立地(欧文)
邮箱:jarvin_g@126.com
微博:立地J
导语:

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

一:认识Aop

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

使用Aop的优点

容易扩展新的切面。

业务逻辑与切面逻辑解耦合。

对修改封闭、对扩展开放。

使用Aop的缺点

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

CleanAop支持语言

版本历史 最新版本:v2.0.0

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

v2.0.0:

拦截面切入方式改变,优化代理类生成方式。

使用AOP的类不能有带参构造函数bug修复。

哪里下载?

github地址

网盘下载:

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])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/110436.html

相关文章

  • Goji —— 基于 Go 语言的微型 web 框架

    摘要:是一个基于的微型框架,其设计受到了的启发。可与组合,可以作为使用。以优雅的方式实现了风格的路由,但是它不允许程序员在处理请求的过程中使用自己的线程状态。而则实现了任意上下文对象。 Goji 是一个基于 Go 的微型 web 框架,其设计受到了 Sinatra 的启发。 showImg(http://segmentfault.com/img/bVcaWq); 示例 一个简单的 He...

    DobbyKim 评论0 收藏0
  • Spring体系常用项目一览

    摘要:的面向的异常遵从通用的异常层次结构。比如以前常用的框架,现在常用的框架包含许多项目,下面挑一些最常用的出来总结一下。状态是流程中事件发生的地点,在流程中通过转移的方式从一个状态到另一个状态,流程的当前状况称为流程数据。 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,我就在这里总结一下,理顺头绪...

    OnlyLing 评论0 收藏0
  • 转:从框架看PHP的五种境界及各自的薪资待遇

    摘要:语言行为及特征状态看不懂任何英语技术,英语文档,凡事没有培训部在搞的,只有英文文档的东西国内一律没大公司在用,都非主流,排斥英文文档和新技术,以及各种超出他学习能力范围的技术。 在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文纯粹个人的看法。你可以认为我无知也好,或者装逼也好,请不要试着在任何情况下,随便发起言语的...

    Godtoy 评论0 收藏0
  • 类库(架包)与框架的区别

    摘要:可以对比某个类库如包和某个框架如加强理解一框架与类库的区别结构上,框架内部是高内聚的,而类库内部则是相对松散的。下图描述了类库框架和应用之间的层次关系。 可以对比某个类库如utils包和某个框架如mybatis加强理解 一、 框架与类库的区别 1、结构上,框架内部是高内聚的,而类库内部则是相对松散的。 2、框架封装了处理流程的控制逻辑,而类库几乎不涉及任何处理流程和控制逻辑。 正是...

    scwang90 评论0 收藏0
  • imi v1.0 正式版,专注单体应用的 PHP 协程应用开发框架

    摘要:年开发并发布框架现已停止维护。经过一年实战,年月日,一周年之际正式发布版本。宇润部分开源项目我已通过码云平台,向项目力所能及地捐款,聊表心意。所以,目前主打的还是单体应用开发。协议的开发,也是带来的一大优势。 imi 介绍 showImg(https://segmentfault.com/img/bVbuab9?w=291&h=187); imi 是基于 PHP 协程应用开发框架,它支...

    genefy 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<