首页 > 其他分享 >.net core中AOP的使用(一)

.net core中AOP的使用(一)

时间:2022-09-01 13:22:06浏览次数:81  
标签:core 实现 代理 模式 AOP net

理解AOP

AOP全称Aspect Oriented Programming,即面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。

我理解其实就是在程序运行时,动态的将需要执行代码段切入到对象的某个方法指定的某个位置。

AOP和OOP是从不同维度考虑的,我理解算得上是对OOP思想的一种补充吧

 

代理模式

 提起AOP就不得不提到代理模式,它是一种结构型的设计模式。

 让你能够提供对象的替代品或其占位符。 代理控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。

 简单理解就是  客户端不会直接与实际实现类打交道,而是通过对实现类的进一步封装成代理类,该代理类不会改变实现类原本的功能(行为),只是在实现类的方法前后添加一些自定义行为用于记录。

参考下图:

代理模式的应用场景

代理模式的应用场景多种多样

比如:

虚拟代理:针对宝贵资源,可能比较消耗系统资源,可通过代理模式针对类型的初始化延迟到真正需要时进行加载,一般配合享元模式实现池化技术。

保护代理:需要满足一定条件的客户端(鉴权)才能够使用,可考虑使用保护代理,预防恶意程序使用此对象。

日志记录:需要记录代理对象执行前后的过程时间等等。

缓存代理:针对一些重复请求,考虑使用此模式。

动态代理:此模式一般依靠语言的反射特性,通过接口或继承方式,实现针对不同的被代理类,统一实现代理行为。

我理解动态代理模式其实就是对AOP的一种实现

.net core 中AOP的常见场景

  1. Filter 过滤器方式 针对MVC中提供不同类型的Filter的钩子事件,提供自定义的行为。
  2. Middle 中间件针对http的管道请求,可添加自定义管道节点,针对http的一些metadata数据进行个性化处理。
  3. IOC 容器动态代理,对容器内的实现类添加动态的代理行为。 

先介绍到这里,接下来会讲.net core 原生实现动态代理模式。

参考链接:

 

标签:core,实现,代理,模式,AOP,net
From: https://www.cnblogs.com/dyhuang/p/16645897.html

相关文章

  • .Net6 Api 里使用版本控制(Versioning)
    NetCoreApi接口版本管理简单介绍感谢创建ASP.NETCoreWebApi本次操作环境条件创建项目versioning的版本控制的方法第一步,通过Nuget安装包第二步,在Startup.cs里的Con......
  • liunx系统docker部署.net core3.1
    此篇文章演示基本的基于docker部署.netcore服务,liunx系统腾讯云ubuntu,.netcore版本3.1。1.安装dockeraptinstalldocker.io2.拉取.netcore依赖镜像dockerpullm......
  • C#.Net 定时器
    如果需要定期重复执行一些方法,最容易的方式就是使用定时器。相比以下方式,定时器既方便使用又能高效地利用内存和资源。newThread(delegate(){while(enabled)......
  • .NET 7 性能改进 -- 至今为止最快的.NET平台
    2022年8月31日StephenToub发布的关于.NET7性能改进的博客,核心主题是.NET7速度很快。这篇博客非常的长,我尝试将它拷贝到Word里,拷贝的时间都花了几分钟,通过Word......
  • SQLite Entity Framework Core 使用 DBFirst
    1.使用DBBrowserforSQLite建立数据库db文件2.NuGet包管理器下载安装如下几3个包  3.使用程序包管理器控制台生成实体PM>Scaffold-DbContext-Force"DataSourc......
  • HttpClient和IHttpClientFactory借助第三方库生成的客户端Refit andWebApiClientCore
    理解ASP.NETCore-发送Http请求(HttpClient)  注:本文隶属于《理解ASP.NETCore》系列文章,请查看置顶博客或点击此处查看全文目录前言在.NET中,我们有很多发送Ht......
  • ASP.NET Core 6 使用IdentityServer实现简单的Policy与Role授权
    .Net的OpenIdConnect和OAuth2.0协议实现的框架最新版是Duende.IdentityServer,用于公司要收费(最便宜1500USD一年可以授权管理5个客户端,每增加一个客户端就要加300USD),用于......
  • Filters in ASP.NET Core(Net6之过滤器)
    FiltersinASP.NETCore如果觉得样式不好:跳转即可(md文件复制过来有些样式会不一样)原文地址:https://lifengying.site/archives/net6%E4%B9%8B%E8%BF%87%E6%BB%A4%E5%99......
  • gdb:产生core文件
    转载地址:https://blog.csdn.net/jiemashizhen/article/details/125016646 core文件是调试段错误的重要手段,默认情况下是不会生成core文件的,可通过如下方式对生成core文......
  • 关于在Rocky linux下安装dotnet sdk不成功的问题
    RockyLinux9,运行dnfinstall-ydotnet-sdk-6.0一切正常,运行起来非常顺利,安装完毕。但是非常诡异,运行dotnet--list-sdksdotnet--list-rumtimes第一个啥也没有,第......