一:AOP 面向切面编程思想
横向重复,纵向抽取

|- filter中
|- 动态代理
|- interceptor中

二:动态代理

1.通过动态代理可以体现aop思想
2.对目标对象中的方法进行增强

三:spring实现aop的原理
1.动态代理(优先)

被代理对象必须要实现接口,才能产生代理对象,如果没有接口将不能使用动态代理技术

2.cglib代理(没有接口)

第三方代理技术,cglib代理.可以对任何类生成代理.代理的原理是对目标对象进行继承代理. 如果目标对象被final修饰.那么该类无法被cglib代理.

四:spring aop开发:可以对任何类进行代理增强

spring封装了动态代理代码.不需要手写动态代理代码.
封装了cglib代理.

五:spring中名词:

Joinpoint(连接点):目标对象中,所有可以增强的方法
Pointcut(切入点):目标对象,已经或需要增强的方法
advice(通知/增强):需要增强的代码.
weaving(织入):动词.将通知应用到切点的过程.
target(目标对象):被代理对象.
proxy(代理对象):将通知织入到目标对象之后,形成代理对象
aspect(切面):切入点+通知

六:步骤
1.导包

    4+2:核心包+日志包2:spring中aop+aspect2:spring依赖包:aop联盟+weaving

2.准备目标对象

3.准备通知类

    前置通知后置通知 方法正常结束环绕通知异常拦截通知后置通知 无论如何都执行    

4.配置文件中配置,导入aop约束

    1>目标对象2>通知对象3><aop:config><aop:ponint-cut id="切点名称" expression="execution(切点表达式)" /><aop:aspect ref="通知对象名称" ><aop:before method="" ponintcut-ref=""  /><aop:after-returning method="" ponintcut-ref=""  /><aop:around method="" ponintcut-ref=""  /><aop:after-throwing method="" ponintcut-ref=""  /><aop:after method="" ponintcut-ref=""  /></aop:aspect>

扩展:使用注解完成aop

    1.导包4+22 aop+aspect2 aop联盟+weaving2.准备目标对象3.准备通知类前置通知后置通知 方法正常结束环绕通知异常拦截通知后置通知 无论如何都执行4.配置文件中配置,导入aop约束1>目标对象2>通知对象3><aop:aspect-autoproxy> 开启注解aop5.注解@Aspect 指定当前类是通知类@Before 前置通知方法@after-returning 后置通知方法@around 环绕通知方法@after-throwing 异常拦截通知方法@after 后通知方法@PointCut 抽取切点表达式

转载于:https://www.cnblogs.com/itzlg/p/10699162.html

二:SpringAOP相关推荐

  1. SpringAOP(2)

    一:SpringAOP的实现原理: 织入:代理的生成时机,代理在什么时期生成的,也是输入AOP的一个定义,和切面切点,连接点是一样的,比如说咱们的lombok,就是在编译时期进行搞事情的,生成Gett ...

  2. AOP常用的几种增强方式,各自的特点

    SpringAOP的5种增强类型应用讲解 一.前言 spring框架中为我们提供的增强包括针对切面的增强和针对切入点的增强,对一个方法的增强底层使用的是动态代理,所以在学习springAop增强之前大 ...

  3. 一文彻底帮你打通SpringAOP的任督二脉,大厂高薪指日可待,建议收藏!!!

      Spring的IoC和AOP不仅仅是我们学习Spring平台下各个框架的核心基础,同时也是我们出去面试问道的频率最高的面试题了,同时也是大家很难彻底掌握好的技术的,本文就透过本质来给大家来介绍下S ...

  4. SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(二)

    文章目录 系列文档索引 四.Spring AOP的使用入门 1.激活AspectJ模块 (1)注解激活 (2)XML激活 2.创建 @AspectJ 代理(了解) (1)编程方式创建 @AspectJ ...

  5. springAop学习笔记(二,springboot进本配置和使用)

    配置 1.引入aop jar包 2.在主类上面加@EnableAspectJAutoProxy 这里要说一句:市面上常用有两种aop实现方式第一种是springaop,第二种是AspectJ,但是原始 ...

  6. Spring AOP(二)AOPAlliance与SpringAOP核心接口介绍

    目录 AOP联盟 1. Advice.MethodInterceptor拦截器(invoke方法:调用invocation.proceed) 2.Joinpoint .MethodInvocation ...

  7. java web的ssh框架_JavaWeb_(SSH论坛)_二、框架整合

    基于SSH框架的小型论坛项目 一.项目入门 传送门 二.框架整合 传送门 三.用户模块 传送门 四.页面显示 传送门 五.帖子模块 传送门 六.点赞模块 传送门 七.辅助模块传送门 导入Jar包 导入 ...

  8. 5.3 Spring事物管理详解 我的程序猿之路:第四十二章

    目录 1.事务介绍 2.事务的四个特性(ACID) 3.Spring 事务管理的核心接口 4. PlatformTransactionManager  事务管理器 5.TransactionStatu ...

  9. Spring-AOP实践 - 统计访问时间

    公司的项目有的页面超级慢,20s以上,不知道用户会不会疯掉,于是老大说这个页面要性能优化.于是,首先就要搞清楚究竟是哪一步耗时太多. 我采用spring aop来统计各个阶段的用时,其中计时器工具为S ...

最新文章

  1. k8s redis集群_基于K8S部署redis哨兵集群
  2. linux的crontab监控,centos服务器crontab计划任务 监控网站
  3. Google、Stanford导师带出的AI人才,是你吗?
  4. java的流对象和一些方法
  5. Multi-thread--C++11中std::lock_guard的使用
  6. docker helowin 迁移_禅道在docker上部署与迁移
  7. mysql存储过程 begin_MySQL存储过程的BEGIN和END
  8. redis cluster(5)- redis集群原理
  9. Matlab200以内所有质数,用matlab编写一个程序:求出200以内的质数,求!!!!急!!!!!...
  10. 程序员宝宝们6661儿童节快乐
  11. 关于浏览器flash插件遇到的一些坑
  12. P17安全领袖圆桌:安全市场迎来千亿发展机遇,腾讯携手产业链伙伴共建安全生态
  13. 量子计算数学基础,pauli 矩阵
  14. hdc bind error : The HTTP response from the server [502] did not permit the HTTP upgrade to WebSocke
  15. 使用mybatisplus自动生成实体类对象报错configuration key ‘file.resource.loader.unicode‘ has been deprecated in favo
  16. zabbix Discovery rules
  17. OpenCV学习笔记(十)——图像卷积(cv.filter2D()、矩阵旋转cv.filp())
  18. PMBOK(第六版) PMP笔记——《第十三章 项目干系人管理》
  19. ai修复图片 python_Python + AI 图片识别案例
  20. Android自定义拍照解决部分手机拍完之后图片不清楚的问题

热门文章

  1. raid磁盘阵列OFFLINE后的应急方案
  2. DataV 支持 token 验证啦!
  3. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
  4. hdu 5285 二分图黑白染色
  5. initWithNibName/awakeFromNib/initWithCoder
  6. 【TYVJ】1359 - 收入计划(二分)
  7. C++ XML解析之TinyXML篇
  8. doxygen相关问题 转
  9. 服务器更改IP(公网)地址后,Program Neighborhood客户端无法连接服务器
  10. MMDetection库部署和训练