AOP 是什么

参考答案

一、AOP的概念

  • AOP(Aspect-Oriented Programming),一般称为面向切面编程。
  • 它作为面向对象的一种补充,主要用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。
  • 在程序开发中,主要用来解决一些系统层面上的问题,在不改变原有的逻辑的基础上,增加一些额外的功能。可用于日志、事务、权限处理等。

二、AOP的常用注解

• @aspect 定义切面
• @pointcut 定义切点
• @before 标注Before Advice定义所在的方法
• @afterreturning 标注After Returning Advice定义所在的方法
• @afterthrowing 标注After Throwing Advice定义所在的方法
• @after 标注 After(Finally) Advice定义所在的方法
• @around 标注Around Advice定义所在的方法

Aspect(切面):是通知和切入点的结合,通知和切入点共同定义了关于切面的全部内容,它的功能、在何时和何地完成其功能。
joinpoint(连接点):指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。
Pointcut(切入点):指我们要对哪些joinpoint进行拦截的定义。通知定义了切面的”什么”和”何时”,切入点就定义了”何地”.
Advice(通知):指拦截到joinpoint之后所要做的事情就是通知。通知分为前置通知、后置通知、异常通知、最终通知、环绕通知。
Target(目标对象):代理的目标对象。
Weaving(织入):指把切面应用到目标对象来创建新的代理对象的过程,切面在指定的连接点织入到目标对象。
Introduction(引入):在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field。

 

3.  AOP使用场景

  • Authentication 权限
  • Caching 缓存
  • Context passing 内容传递
  • Error handling 错误处理
  • Lazy loading懒加载
  • Debugging调试
  • logging, tracing, profiling and monitoring记录跟踪\优化\校准
  • Performance optimization性能优化
  • Persistence持久化
  • Resource pooling资源池
  • Synchronization同步
  • Transactions 事务

 

以上,是Java面试题【AOP是什么】的参考答案。

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧