ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.net core中AOP的使用(一)

2022-09-01 13:33:27  阅读:219  来源: 互联网

标签: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,动态
来源: https://www.cnblogs.com/dyhuang/p/16645897.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有