AOP:面向切面编程。“给程序统一添加新功能的一种思想”。

它是对传统OOP编程的一种补充。

OOP关注需求功能模块,封装良好的类,并让他们有属于自己的行为,侧重业务逻辑的实现。

AOP关注通用功能,而不关注业务逻辑,将不属于业务逻辑的部分给抽取出来。例如:日志、异常捕获、权限验证(拦截).

在web应用程序(Webform/MVC),我们登录后经常把用户信息存入Session中.然后再每个页面进行验证 用户是否登录,没有登录就跳转到登录页面。如:

public ActionResult Index()

{

if(Session["User"]==null)

{

return RedirectToAction("/Login/Index");

}

}

这个和业务逻辑 无关,如果每个页面都这样去验证用户是否登录,就太麻烦了。

公共的部分给抽取出来。在ASP.NET MVC中,filter就是一种面向切面的技术了。

AOP是预先定义的一组特性Attribute,使它具有拦截方法的功能,可以让你在执行代码之前、之后,处理你的事情。

ASP.MET MVC中,有ActionFilter,ExceptionFilter。

1.Action过滤器继承ActionFilterAttribute类,Action执行之前执行一段代码,重写OnActionExecuting方法,执行完毕重写OnActionExecuted

所以,我们写一个Action过滤器,在filtreConfig中注册为全局filter,这样执行每个Action都可以去验证Session了。

2.Exception过滤器继承HandleErrorAttribute类,在程序发生异常的时候执行一段代码。重写OnException方法。

在程序添加、删除、修改数据时候,有可能出现异常,我们通常做法都是在每个Action中使用try...catch代码块出现异常弹出异常信息给用户。

这个也是和业务逻辑无关的,如果每个Action中都写try...catch 就显得太臃肿。

简化代码,注册全局的异常过滤器,用来捕捉应用程序的异常,并进行相应的处理(自定义消息返回格式{IsSuccess:xx,msg:xx})

这样当程序出现异常,过滤器已经捕捉到了,并根据自定义的消息格式返回给前台。就不用再每个Action中写try...catch了。简化了代码。

MVC过滤器-AOP思想初探相关推荐

  1. MVC过滤器 AuthorizeAttribute使用

    APS.NET MVC中(以下简称"MVC")的每一个请求,都会分配给相应的控制器和对应的行为方法去处理,而在这些处理的前前后后如果想再加一些额外的逻辑处理.这时候就用到了过滤器. ...

  2. Spring框架系列之AOP思想

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.AOP概述 (1).什么是 AOP AOP 为 Aspect Oriented Progra ...

  3. ASP.NET MVC 过滤器(三)

    ASP.NET MVC 过滤器(三) 前言 本篇解说行为过滤器的运行过程,过滤器实现.使用方式有AOP的意思.能够通过学习了解过滤器在框架中的运行过程从而获得一些AOP方面的知识(在顺序运行的过程中, ...

  4. ASP.NET MVC 过滤器(一)

    ASP.NET MVC 过滤器(一) 前言 前面的篇幅中,了解到了控制器的生成的过程以及在生成的过程中的各种注入点,按照常理来说篇幅应该到了讲解控制器内部的执行过程以及模型绑定.验证这些知识了.但是呢 ...

  5. asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码

    asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 参考文章: (1)asp.net MVC 过滤器使用案例:统一处理异常顺道精简代码 (2)https://www.cnblogs.co ...

  6. ASP.NET MVC过滤器(一)

    MVC过滤器是加在 Controller 或 Action 上的一种 Attribute,通过过滤器,MVC 网站在处理用户请求时,可以处理一些附加的操作,如:用户权限验证.系统日志.异常处理.缓存等 ...

  7. Spring的AOP思想和实现AOP思想的框架AspectJ

    章节目标:详细解释什么是Spring AOP思想和对于该思想实现的AspectJ框架的实现用法. 一.AOP面向切面编程 1.AOP概述 AOP(Aspect Orient Programming)面 ...

  8. pring MVC过滤器-HttpPutFormContentFilter

    在Spring MVC过滤器-HiddenHttpMethodFilter中我们提到,jsp或者说html中的form的method值只能为post或get,我们可以通过HiddenHttpMetho ...

  9. 跟我一起学.NetCore之MVC过滤器,这篇看完走路可以仰着头走

    前言 MVC过滤器在之前Asp.Net的时候就已经广泛使用啦,不管是面试还是工作,总有一个考点或是需求涉及到,可以毫不疑问的说,这个技术点是非常重要的: 在之前参与的面试中,得知很多小伙伴只知道有一两 ...

最新文章

  1. [转]学习Objective-C: 入门教材
  2. windows 7下同时安装visual studio 2012和2010
  3. 常见挖矿 cpu 算力单位:EH/s 、PH/s、TH/s、Msol/s、Mgps、Kgps
  4. tinyxml使用指导
  5. 全球及中国认知文档处理行业运营策略与应用前景分析报告2022版
  6. 常见模块设计--数据字典
  7. skycut刻字机工厂经纬线模切机车间在哪里
  8. ES亿级数据检索优化,三秒返回突破性能瓶颈
  9. 网站被写入恶意代码的主要原因及防范策略
  10. python大数据运维库_大数据集群运维(10)Pycharm下安装模块
  11. OmniMarkupPreview 插件404 error on preview
  12. 禁用计算机外部设备,在桌面办公系统中, ()能够阻止外部主机对本地计算机的端口扫描。...
  13. mysql oracle linux_mysql、oracle在Linux和Windows下的简单自动备份
  14. 软件测试自学好还是培训好?软件测试自学与培训的优劣势对比
  15. rest服务理解以及restful api
  16. 什么是钉钉项目施工和工程管理系统?
  17. 青鸟BCNT-网络信息安全工程师
  18. echart:legend中显示value+自定义文字样式
  19. ECharts+Vue实现数据可视化
  20. 小码王python_小码王为你解读Python编程课程

热门文章

  1. Vertx入门学习(含代码)
  2. 快手直播用什么手机好 快手直播需要什么设备
  3. 跟测试老兵3天成为APP高手(二)
  4. window7电脑怎么调亮度?
  5. Windows中WSL2 配置运行GNOME桌面版 Ubuntu
  6. python类 object 作为参数_python – 以Object作为参数的类
  7. 实用计算机应用基础,实用计算机应用基础教程
  8. 自举电路可以增加输入阻抗,你知道吗
  9. Leetcode 1176:健身计划评估(超详细的解法!!!)
  10. 科技化浪潮下,金融牌照还有没有价值?