spring AOP

https://www.cnblogs.com/jiangyi-uestc/p/5755133.html
Spring动态代理
AOP面向切面编程
面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去(职责分配),即让不同的类设计不同的方法。好处是:降低了代码的重复程度,使类可重用。缺点:在分散代码的同时,增加了代码的重复性。如:在两个类中,可能都需要在每个方法中做日志,根据面向对象的方法,必须在两个类的方法中都加入日志的内容。虽然内容相同,但是因为面向对象的设计让类与类之间无法联系,导致不能将这些重复的代码统一起来。
可以在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
1、AOP面向切面编程:Aspect-Oriented Programming
允许开发人员在不改变原来模型的基础上动态的修改模型以满足新的要求。如:在不改变原来业务逻辑模型的基础上,可动态地增加日志,安全或异常处理的功能。
1、过滤器
Filter使用户可以改变一个request并且修改一个response。Filter不是一个Servlet,不能产生一个response,但它能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response。Filter其实是一个”Servlet Chainning”(Servlet链)
一个filter的作用包括以下几个方面:
(1)、在Servlet被调用之前截获
(2)、在Servlet被调用之前检查Servlet Request。
(3)、根据需要修改Request头和Request数据。
(4)、根据需要修改Response头和Response数据。
(5)、在Servlet被调用之后截获。
2、优点和缺点:
过滤器可以对几乎所有请求进行过滤,缺点是一个过滤器实例只能在容器初始化时调用一次。
3、使用过滤器的目的
用来做一些过滤操作,获取我们想要获取的数据。如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等。
10、拦截器Interceptor
拦截器不依赖于Servlet容器,依赖于Web框架,在SpringMVC中就是依赖于SpringMVC框架。在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种应用。
由于拦截器是基于web框架的调用,因此可以使用Spring的控制反转获取容器中的各个bean,进行一些业务操作,同时一个拦截器实例在一个controller生命周期之内可以多次调用。缺点:只能对controller请求进行拦截,对其他的一些(如直接访问静态资源的请求)则没办法拦截处理,拦截器在堆请求权限鉴定方面有很大用处。
Spring过滤器和拦截器的区别
1、联系
(1)、Spring中拦截器与Servlet的过滤器,二者都是AOP编程思想的体现。
(2)、都能实现权限检查、日志记录等。
2、区别
(1)、使用范围不同
Filter过滤器是Servlet规定的,只能用于web程序;
Interceptor拦截器既可以用于Web程序,也可用于Apllication,Swing程序中。
(2)、规范不同
Filter过滤器是Servlet规范定义的,是Servlet容器支持的;
Interceptor拦截器是在Spring容器内的,Spring框架所支持的。
(3)、使用资源不同
同其他代码块一样,拦截器是一个Spring的组件,由Spring管理。配置在Spring中,因此能使用Spring中的任何资源、对象,例如Service对象、数据源、事务管理等。该实现可以通过IoC(控制反转)注入到拦截器即可,而filter过滤器则不能。
(4)、深度不同
Filter只在Servlet前后起作用,而拦截器能深入到方法前后,异常抛出前后因为拦截器的使用具有更大的弹性,所以在spring中优先使用拦截器

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,295评论 1 92
  • title: Spring_AOP源码分析date: 2016-11-03 01:15:11categories:...
    raincoffee阅读 1,731评论 2 36
  • Java中常见的AOP技术有两个,分别是Filter和代理模式(也可以称为过滤器和拦截器) 过滤器,实现过滤功能,...
    随风而逝1027阅读 170评论 0 0
  • 会乘风破万里浪,直挂云帆济沧海。 今天晚上和同学一起到冯志鹏家聚会,然后是霍建业还有张万里开车,带着我到大许家,和...
    Hushering阅读 371评论 0 0