2024年java基础面试题ioc和aop

java基础面试题ioc和aopAOP 面向切面编程 Aspect Oriented Programming 是一种编程范式 旨在增加模块化的支持 通过分离横切关注点 cross cutting concerns 来提高代码的可维护性 以下是 AOP 中的一些关键术语

大家好,我是讯享网,很高兴认识大家。



AOP(面向切面编程,Aspect-Oriented Programming)是一种编程范式,旨在增加模块化的支持,通过分离横切关注点(cross-cutting concerns)来提高代码的可维护性。以下是AOP中的一些关键术语:

  1. Aspectÿjava基础面试题ioc和aop08;切面):
    • 切面是一个模块化的横切关注点,它可能会影响多个类。切面通常包括通知(Advice)和类型(Pointcut)的定义。
  2. Join point(连接点):
    • 程序执行过程中的某个点,例如一个方法的执行或一个异常的处理。在Spring AOP中,仅支持方法的连接点。
  3. Pointcut(切点):
    • 匹配连接点的断言。通知(Advice)与切点表达式关联,并在与切点匹配的连接点上运行。
  4. Advice(通知):

    • 在切点的特定连接点处执行的动作。这是切面对程序行为的核心扩展。通知有几种类型,包括:
      • Before(前置通知): 在连接点之前执行的通知。
      • After(后置通知): 在连接点正常完成后执行的通知。
      • After returning(返回后通知): 在连接点返回一个结果后执行的通知。
      • After throwing(抛出后通知): 在连接点抛出异常后执行的通知。
      • Around(环绕通知): 在连接点之前和之后都可以执行的通知,并有能力决定是否执行连接点。
  5. Introduction(引入):
    • 为现有的对象类型声明额外的方法或字段。Spring AOP允许你向任何通知对象引入新的接口(及其实现)。
  6. Target object(目标对象):
    • 由一个或多个切面通知的对象。也被称为“被通知对象”。
  7. AOP proxy(AOP代理):
    • 由AOP框架创建的对象,用于实现切面契约(包括通知等功能)。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
  8. Weaving(织入):
    • 将切面与其他应用程序类型或对象链接起来,以创建一个被通知的对象。这可以在编译时、类加载时或运行时完成。Spring AOP和其他纯Java AOP框架通常在运行时执行织入。

 以上这些都是AI出来的,接下来谈谈我自己的理解:首先我们知道OOP(面向对象编程)不能处理一些分散在多个类或对象中的公共行为(如日志记录,事务管理,权限控制,接口限流等),这些通常被称为横切关注点。如果我们在每个类中都重复这些代码,胡造成代码的冗余,复杂和难以维护。所以AOP解决了这一问题,AOP可以将横切关注点分从核心逻辑(核心关注点)中分离出来,实现关注点的分离。

这里讲一个例子,在学校中,我们要住在宿舍,但是宿舍的核心业务是睡觉,但是也可以学习,所以将学习的地方抽象出来成教学楼图书馆,集中到一个地方管理,睡觉我就管理睡觉,学习我就管理学习,分开管理便于维护,而这个“学习的地方”就可以称之为横切关注点,将它从宿舍中分离出来实现了横切关注点的分离。

小讯
上一篇 2024-12-25 19:23
下一篇 2024-12-23 20:58

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/5973.html