什么是AOP?

首先告诉面试官aop就是面向切面编程,那什么是面向切面编程呢?就是指在运行期动态的将代码切入到制定类的指定位置这种思想就是面向切面编程,举个例子,如果我们要在执行哪些方法前要执行一些特定的代码,而且有好多位置都要用到这个特定的代码,如日志输出等。如果我们不使用AOP的话那么我们要在这些方法前都拷贝一份这个代码,如果将来这个特定的代码改动了,那么你就要改变所有用到了这个特定代码的类,这样一来造成后期维护代码的成本很大,而且特别不易于维护,而AOP又分为静态AOP和动态AOP,静态AOP主要是aspectJ,动态AOP就是springAOP,静态AOP使用的是静态代理,对于代理模式的思想就是不改变源代码的情况下对某一个类进行增强,springAOP使用的就是动态代理,而动态代理又分为两类,一个是jdk的动态代理,但是该jdk动态代理有局限性,就是被代理的目标类必须实现有接口,所以spring还提供了另外一种动态代理的方式,就是cglib,cglib是通过继承的方式来实现的就是说你没有实现的有接口也能给你生成代理对象,因为是通过继承的方式所以对于final修饰的方法是不能进行增强,因为final修饰的方式不能被重写,而spring中如果被代理的类实现的有接口那么就优先使用jdk动态代理的方式,否则才使用cglib的方式

就这样了反正也没几个人看,下面就扩展一下springAOP中的相关术语吧

连接点:就是可以进行切入的地方,一个类中的所有方法都可以被视为连接点

切入点:就是切点表达式匹配的连接点,也就是可以在这个方法上进行通知的点

通知:真正要执行的代码,就是说你要给切入点织入哪些代码,通知分为前置通知,后置通知,异常通知,返回通知,环绕通知

切面:通知与切入点的组合,

织入:把切面应用到目标对象并生成代理对象的过程

写的不好,如果有错误还请指出

什么是AOP对AOP的面试题相关推荐

  1. Spring AOP(一) AOP基本概念

    Spring AOP 基本概念 术语 容易理解 举个栗子给大家讲一下代理: 什么是AOP? 基本术语 (1)切面(Aspect) (2) 目标对象(Target) (3) 连接点(JoinPoint) ...

  2. Spring AOP / AspectJ AOP 的区别?

    Spring AOP / AspectJ AOP 的区别? Spring AOP属于运行时增强,而AspectJ是编译时增强. Spring AOP基于代理(Proxying),而AspectJ基于字 ...

  3. 【Spring AOP】AOP 底层实现原理 —— 动态代理类的创建(JDK、CGlib)、工厂如何加工原始对象

    AOP编程 AOP 编程 AOP 概念 AOP 编程的开发步骤 切面的名词解释 AOP 的底层实现原理 动态代理类的创建 JDK 的动态代理(原理 + 编码) CGlib 的动态代理 Spring 工 ...

  4. Aop简介 Aop术语 SpringAOP

    1.AOP简介 1.AOP (面向切面编程):是一种新的方法论,是对传统OOP(面向对象编程)的补充 2.AOP 的主要编程对象是切面(aspect),而切面模块化横切关注点 3.在应用AOP编程时, ...

  5. spring Aop中aop:advisor 与 aop:aspect的区别

    在spring的配置中,会用到这两个标签.那么他们的区别是什么呢? <bean id="testAdvice" class="com.myspring.app.ao ...

  6. 关于aop,AOP的应用场景?什么事AOP?

    什么是AOP? **AOP(Aspect-OrientedProgramming,面向方面编程)**可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.它 ...

  7. Aop介绍 ,aop使用 aop解释

    Aop介绍 AOP是面向切面编程,OOP是面向对象编程. 所谓的面向切面编程.就是添加到其他程序的方法之前执行. 把方法切开在方法之前添加一些辅助功能使方法代码更加纯粹增加代码复用. 官方解释:AOP ...

  8. spring AOP中 aop:advisor 与 aop:aspect 的区别

    在开发过程中,不少有Spring Aop的使用, 在面向切面编程时,我们会使用< aop:aspect>: 在进行事务管理时,我们会使用< aop:advisor>. 那么,对 ...

  9. Spring AOP【AOP的基本实现与动态代理JDK Proxy 和 CGLIB区别】

    Spring AOP[AOP的基本实现与动态代理JDK Proxy 和 CGLIB区别]

  10. spring AoP学习 -----AoP的基本概念

    Aop的发展经理过两个阶段,第一个是静态Aop阶段,第二个是动态Aop阶段. 静态Aop阶段:作为第一代的Aop,以最初的AspectJ为代表,特点是以相应的横切关注点以Aspect形式实现之后,会通 ...

最新文章

  1. 优化IIS7.5支持10万个同时请求的配置方法
  2. angularjs解决方案之 递归模板
  3. JDBC中Statement与PreparedStatement的区别
  4. 设计师电脑推荐笔记本_笔记本电脑选购推荐全攻略
  5. 关于二叉堆(优先队列)的其他操作及其应用
  6. 广工android嵌入式系统试卷_嵌入式系统考试试题A及答案
  7. FreeRTOS应用开发笔记之一:FreeRTOS在STM32的移植
  8. iPhone 12在二季度iPhone出货量中占63% 低于iPhone 11同期
  9. debian9.4配置iso作为更新源
  10. SAP License:SAP PI(流程集成)
  11. 发布了!2020 年 AI 人才发展报告,最高补助 1000 万!
  12. 今天终于搞懂了:为什么Java的main方法必须是public static void?
  13. 面向对象七大设计原则
  14. java获取当前周数_java获取周数的方法
  15. 每日学习笔记(12)
  16. c语言的32位指针加1是多少,c语言中,指针加1的情况.指针变量详细介绍
  17. 新玺配资:股票波段操作中的操作法则
  18. dcc-garch matlab,如何用Eviews或者MATLAB实现DCC-garch模型?
  19. (中篇)中高级前端大厂面试秘籍,寒冬中为您保驾护航,直通大厂
  20. 【学习总结】MFC(CImagelist)(重绘)(双缓冲)

热门文章

  1. 2017败北清单:人工智能在这些游戏中战胜了人类
  2. Java高级特性-IO流
  3. [JVM] java虚拟机 堆
  4. 基于KMeans聚类的协同过滤推荐算法推荐原理、过程、代码实现 Canopy聚类算法 KMeans+Canopy聚类算法 聚类算法程序实现 KMEans聚类算法代码java
  5. 大白菜制作U盘启动盘且保存4G以上的镜像教程
  6. 网站seo,添加关键词和描述
  7. 一博科技通过注册:年营收7亿拟募资8亿 汤昌茂等人控制85%股权
  8. 看它72变,不仅能随时“变身”、还能游泳滑翔的“Prime”机器人
  9. Python 的 os.path() 和 pathlib.Path()
  10. 考研政治1000题浓缩版