这段时间对于Spring中的Aop原理做了一些了解,整理了一下大概分为以下几点,aop是什么以及aop实现原理,aop中常用的术语以及代理方式等等:

1.什么是 aop?

  1. aop是面向切面编程,不同于java原始的oop是面向对象编程,使用aop可以实现不需要修改原功能代码,只需要修改一下配置,即可实现功能的扩展
  2. aop采用的是横向抽取机制,取代了传统的纵向继承体系,减少了重复性代码
  3. 运行期间通过代理方式向目标类植入增强代码
  4. 经典的应用场景有事务的管理,安全检查,缓存,性能监控等等

2.aop的实现原理?

  1. aop底层是采用动态代理机制实现的:接口+实现类
  2. 接口:spring采用jdk的动态代理proxy
  3. 实现类:spring采用cglib实现字节码增强
  4. 就是由代理创建出一个和impl实现类平级的一个对象,但是这个对象不是一个真正的对象,只是一个代理对象,但它可以实现和impl相同的功能,这个就是aop的横向机制原理,这样就不需要修改源代码

3.aop中常用的术语?

  1. target:目标类,需要被代理的类,如service
  2. joinpoint:连接点,指那些可能被拦截的方法,如目标类的所有方法
  3. pointCut:切入点,已经被增强的连接点,如addUser()
  4. advice:增强/通知,增强代码,如before()/after()
  5. weaving:织入,把增强应用到目标类而创建出代理对象的这一过程
  6. proxy:代理,目标类被织入增强后就产生一个代理类
  7. aspect:切面,切入点和增强的结合
    (还有些aop偏底层的内容,如代理方式等会继续更新,也可留言交流)

面试题--对于Spring Aop原理的理解相关推荐

  1. modelandview使用过程_面试问烂的 Spring AOP 原理、Spring MVC 过程

    点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:莫那一鲁道链接:www.jianshu.com/p/e18fd44964eb Spring AOP ,SpringMVC ,这两个应该 ...

  2. Spring原理学习系列之三:Spring AOP原理(从源码层面分析)-------上部

    引言 本文是Spring原理分析的第三篇博文,主要阐述Spring AOP相关概念,同时从源码层面分析AOP实现原理.对于AOP原理的理解有利于加深对Spring框架的深入理解.同时我也希望可以探究S ...

  3. 面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)

    Spring AOP ,SpringMVC ,这两个应该是国内面试必问题,网上有很多答案,其实背背就可以.但今天笔者带大家一起深入浅出源码,看看他的原理.以期让印象更加深刻,面试的时候游刃有余. Sp ...

  4. spring aop原理_Spring知识点总结!已整理成142页离线文档(源码笔记+思维导图)...

    写在前面 由于Spring家族的东西很多,一次性写完也不太现实.所以这一次先更新Spring[最核心]的知识点:AOP和IOC 无论是入门还是面试,理解AOP和IOC都是非常重要的.在面试的时候,我没 ...

  5. 史上最烂 spring aop 原理分析

    盗引·中篇·spring aop spring aop: jdk 动态代理和 cglib 动态代理的特点.区别.使用方式.原理及各自对反射的优化.二者在 spring 中的统一.通知顺序.从 @Asp ...

  6. Spring AOP原理浅析及入门实例

    上篇问题及Spring AOP实现原理浅析 上篇说了一个AOP编程问题,那是一个错误的AOP案例.它的错误在A类中,再次粘贴A类代码: @Componentpublic class AImpl imp ...

  7. Spring AOP原理及使用,面试必备

    a) 什么是AOP? AOP(Aspect Oriented Programming),也就是面向切面编程,是对面向对象编程OOP的一种补充:通过"横切"技术剖解开封装的对象内部, ...

  8. Spring源码深度解析(五):Spring AOP原理及源码详解

    前言 OOP表示面向对象编程,是一种编程思想:AOP表示面向切面编程,也是一种编程思想,AOP的概念可以参考文章:SpringAOP基本概念详解. 正文 1.AbstractAdvisorAutoPr ...

  9. 动态代理jdk和cglib区别、注意事项(private,static,final)、spring aop原理

    文章目录 一.代理简聊 二.静态代理 三.动态代理 1.jdk动态代理 2.cglib动态代理 四.动态代理总结.注意事项 1.jdk动态代理与cglib的区别. 2.注意事项及分析. 五.aop原理 ...

最新文章

  1. [短文速读] 重载有暗坑,JVM是如何执行方法的
  2. Linux内核链表实现剖析
  3. Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
  4. 最新研究显示人类智力逐渐下降且变得更愚蠢
  5. linux apache php显示源码,linux 源码安装apache PHP 问题
  6. java panel 所有事件_java-侦听/处理JPanel事件
  7. NOIP2015DAY2T2子串
  8. java项目开发教材_《Java Web开发实战》——Java工程师必备干货教材
  9. 映射的网络驱动器怎么共享_如何在Windows上通过网络共享CD和DVD驱动器
  10. navicat使用手册
  11. VMware虚拟机不显示ipv4(无网络)
  12. 2、进入缓冲区(缓存)的世界,破解一切与输入输出有关的疑难杂症(转载自C语言中文网,仅作学习笔记)
  13. 五位本科生4个月造出芯片毕业!新的后续来了……
  14. 电脑桌面壁纸更换后不一会就变成黑屏
  15. php访问opc ua,什么是OPC网关?OPC UA有什么特点
  16. 每天工作3小时就够了
  17. Java中super关键字及super()的使用
  18. 陕西服装工程学院计算机科学与技术男女比例,陕西服装工程学院最差的专业
  19. HTML5期末大作业:HTML+CSS+JS制作鲜花网站(学生网页设计作业源码)
  20. sketch操作(一)

热门文章

  1. 电脑右键计算机属性在哪里打开,右键属性打不开怎么办
  2. java爬去指定网页的内容_JAVA使用Gecco爬虫 抓取网页内容(示例代码)
  3. php.ini disable_functions 配置 无效,看我深夜如何绕过disable_functions拿到主机权限
  4. Js 密码框验证信息提示
  5. 用IP段区分境内外用户
  6. 动态规划经典题目总结
  7. HTML实现加减乘除的计算器+JavaScrip小知识点
  8. Kruskal算法(最小生成树)
  9. 高级asyncio测试
  10. HDU 6395 灵性优化