技术分析

jsfx
数据可视化技术分析

.NET Core中过滤器Filter的使用介绍

技术分析1732年前 (2019-11-05)大数据

知识点回顾:

前面几篇文章分别给大家介绍了

(1)Swagger的集成和用法;

(2)JWT身份验证的集成和用法;

(3)OOM框架AnutoMapper对象映射的用法;

今天给大家介绍过滤器Filter的基本使用:

过滤器有什么作用,在什么场景下适合用到它?

假设一个项目进展到快结束的时候,项目leader为了保证程序的稳定性和可监控和维护性要求将所有的方法加上日志,如果项目比较庞大,方法非常多,那岂不是得费很大得劲来完成这样一件事情。不过不用担心,咋们遇到的问题,伟大的语言设计者早已帮我们想好了解决办法过滤器,过滤器是一种AOP(面向切面编程)技术的体现,AOP具有松耦合,易扩展,代码可复用的特点。

通常我们在这些场景下如身份验证、日志记录、异常获取等会使用到过滤器

.NET Core中的过滤器生命周期:


 

.NET Core中的过滤器有多种,今天给大家主要介绍ActionFilterAttribute的用法

(1)自定义一个Filter类:

复制代码
public class LogFilter: ActionFilterAttribute
{    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {        base.OnActionExecuting(filterContext);        /* todo OnActionExecuting */
    }    public override void OnActionExecuted(ActionExecutedContext filterContext)
    {        base.OnActionExecuted(filterContext);        /* todo OnActionExecuted */
    }    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {        base.OnResultExecuting(filterContext);        /* todo OnResultExecuting */
    }    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {        base.OnResultExecuted(filterContext);        /* todo OnResultExecuted */
    }
复制代码

 

(2)注册过滤器,注册过滤器有两种方式,一种是全局注册,另一种是局部注册:

//全局注册,在ConfigureServices方法中添加注册代码:services.AddMvc(option => { option.Filters.Add(typeof(LogFilter)); });  //全局注册过滤器

局部注册,局部注册可以体现在类或方法上:


 

(3)运行,请求一个具体接口,跟踪一下执行顺序:


 

 

可以看到过滤器起到了对应的作用。

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由策意data发布,如需转载请注明出处。

转载请注明出处:http://dsj.ceyicm.cn/reed/36.html

分享给朋友:

相关文章

将.NET Core编写的数据可视化项目打包成Docker镜像,实现容器化部署

将.NET Core编写的数据可视化项目打包成Docker镜像,实现容器化部署

第一步 环境准备,安装docker环境:1234567891011通过命令安装docker:sudo apt-get install -y docker.io 启动Docker服务...

实战:SpringBoot+KafKa实现生产者和消费者功能

实战:SpringBoot+KafKa实现生产者和消费者功能

1.配置pom包<dependency>  <groupId>org.springframework.kafka</groupId>  <...

.NET Core中使用OOM框架,AutoMapper的使用介绍

.NET Core中使用OOM框架,AutoMapper的使用介绍

(一)什么是OOM:OOM顾名思义,Object-Object-Mapping实体间相互转换,AutoMapper其意义在于帮助你无需手动的转换简单而又麻烦的实体间关系。(二)AutoMapper是什...

利用org.mybatis.generator生成实体类

利用org.mybatis.generator生成实体类

springboot+maven+mybatis+mysql 利用org.mybatis.generator生成实体类1.添加pom依赖: 2.编写generatorConfig....

分享SQL,查询用户最近一次购买时间间隔

分享SQL,查询用户最近一次购买时间间隔

(1)先创建一张测试表:1   CREATE TABLE `用户购买订单` (2 3   `购买时间` datetime(6)&n...

SpringBoot+SparkSQL操作JSON字符串

SpringBoot+SparkSQL操作JSON字符串

在SpringBoot中通过maven来做包管理构建,有几个地方需要注意一下的,需要解决包之间的冲突,否则运行时会报错:(1)sparkSQL中需要先排除两个包: 1  ...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
每一次合作都多一位朋友

体验账号:administrator 密码:administrator

  • 7X12小时
    7X12小时

    专家1V1服务

  • 业务保障
    业务保障

    扎实数据根基

  • 合作伙伴
    合作伙伴

    NBIDataVis

  • 强大交付
    强大交付

    实现客户价值