Aspect Injector 库地址:https://github.com/pamidur/aspect-injector

AOP在java spring框架中已经集成得非常好了,但是可惜NET却用的人很少,有空在git找了一下AOP的库,目前发现Aspect Injector 算是比较不错的了,小实牛刀体验了一下。

在项目中,我们为了记录程序的运行情况,往往会在方法执行前后增加日志,方便后期的排查。那我们先看看使用aop前后的代码对比:

未使用AOP的代码:

NET Core 基于Aspect Injector 实现面向AOP编程

 

 

使用AOP的代码:

NET Core 基于Aspect Injector 实现面向AOP编程

 

 可以明显看到,使用aop后可以有效的减少冗余代码,让我们专心于核心业务。

 

一、首先,我们要先引入NUGet安装包

NET Core 基于Aspect Injector 实现面向AOP编程

 

 

二、实现我们的AOP实现类,这里以LogCall 为例,来实现日志的切面

NET Core 基于Aspect Injector 实现面向AOP编程

 

 

三、在我们需要使用AOP的方法处加入特性即可

NET Core 基于Aspect Injector 实现面向AOP编程

 

 四、查看执行效果:

NET Core 基于Aspect Injector 实现面向AOP编程

 

 遗憾的是对比java的AOP-AspectJ,这个库功能还是比较弱的,仅仅支持前置和后置的记录,没有异常通知、环绕通知等功能。且不是通过DI注入方式来实现,对代码具有入侵性。

相关文章:

  • 2018-12-08
  • 2021-12-26
  • 2021-11-29
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2021-06-19
猜你喜欢
  • 2022-12-23
  • 2021-11-23
  • 2021-06-27
  • 2022-02-25
  • 2021-10-17
  • 2022-01-05
  • 2021-12-27
相关资源
相似解决方案