zoukankan      html  css  js  c++  java
  • 拦截器、过滤器、@Aspect 区别

    1、需求场景

     之前也有在文章写道 “拦截器过滤器" 的区别,文章链接,在实际开发过程中,我们可能会遇到拦截请求参数的需求,在这我举个场景。
     
    某一个接口的请求参数都是加密的,而请求参中还有一些跟业务无关的数据,需要剔除。

    2、问题产生

     那么怎么能够实现只要和业务有关的数据呢?

     首先,我们想到的是通过拦截器,对加密的数据进行解密,然后把解密后的数据重新放到 request 中,request.setAttribute("数据名", 数据);
     
     其实呢,还可以通过 @Aspect 注解,在方法里通过 @before,@around 和 @after 注解的方式来拦截数据,配置起来比拦截器简单。
     
    疑惑就在这产生了,通过  @Aspect  注解的方式写的跟拦截器有什么区别呢,他到底是不是拦截器呢?

    3、问题总结

     3.1、三者不同

     @Aspect 注解形式是 AOP 的一种实现。AOP 使用的主要是动态代理 。
     
     过滤器使用的主要是反射 。
     
     拦截器使用的主要是回调 。
     

     3.2、示例分析

     前台一个请求过来 ,会先进行过滤器处理,看程序是否受理该请求 。 过滤器放过后 , 程序中的拦截器进行处理 ,处理完后进入 被 AOP 动态代理重新编译过的主要业务类进行处理 。
     
     通过示例去理解三者的不同 ,所以三者不存在所属关系。
     
     博客地址:https://www.cnblogs.com/niceyoo
  • 相关阅读:
    java web 开发入门
    程序优质网站
    为什么要放弃ssh框架
    JDK核心源码(2)
    Linux 格式化分区 报错Could not stat --- No such file or directory 和 partprobe 命令
    快照COW
    磁盘检测SMART工具
    python学习-3.一些常用模块用法
    python 学习2:生成器,迭代器,装饰器
    关于对SwfUpload的改造
  • 原文地址:https://www.cnblogs.com/niceyoo/p/9527143.html
Copyright © 2011-2022 走看看