你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
-
考察点:AOP
参考回答:
a. 连接点(Joinpoint):程序执行的某个特定位置(如:某个方法调用前、调用后,方法抛出异常后)。一个类或一段程序代码拥有一些具有边界性质的特定点,这些代码中的特定点就是连接点。Spring仅支持方法的连接点。 b. 切点(Pointcut):如果连接点相当于数据中的记录,那么切点相当于查询条件,一个切点可以匹配多个连接点。Spring AOP的规则解析引擎负责解析切点所设定的查询条件,找到对应的连接点。 c. 增强(Advice):增强是织入到目标类连接点上的一段程序代码。Spring提供的增强接口都是带方位名的,如:BeforeAdvice、AfterReturningAdvice、ThrowsAdvice等。
d. 引介(Introduction):引介是一种特殊的增强,它为类添加一些属性和方法。这样,即使一个业务类原本没有实现某个接口,通过引介功能,可以动态的未该业务类添加接口的实现逻辑,让业务类成为这个接口的实现类。 e. 织入(Weaving):织入是将增强添加到目标类具体连接点上的过程,AOP有三种织入方式:①编译期织入:需要特殊的Java编译期(例如AspectJ的ajc);②装载期织入:要求使用特殊的类加载器,在装载类的时候对类进行增强;③运行时织入:在运行时为目标类生成代理实现增强。Spring采用了动态代理的方式实现了运行时织入,而AspectJ采用了编译期织入和装载期织入的方式。 f. 切面(Aspect):切面是由切点和增强(引介)组成的,它包括了对横切关注功能的定义,也包括了对连接点的定义。
-
Spring AOP 中织入(Weaving)可以在下面什么时间完成()
2021-09-18 关注 0 浏览1050 1答案
-
怎么理解面向切面编程aop,在项目中怎么使用的?
2022-09-21 关注 1 浏览13 0答案
-
Spring的切面是在目标对象生命周期的哪个阶段织入的?
2022-03-03 关注 0 浏览43 1答案
-
说下你对aop的理解?
2021-11-23 关注 0 浏览133 1答案
-
谈下你对aop的理解?
2021-09-17 关注 0 浏览167 1答案
-
Spring谈一谈你对AOP的理解?
2021-09-17 关注 0 浏览139 1答案
-
Aspect切面
2021-11-23 关注 0 浏览112 1答案
-
spring嵌套的异常是java.lang.NoClassDefFoundError:org / aopalliance / aop / Advice
2021-02-02 关注 0 浏览107 1答案
-
谈谈你对SAAS概念的理解?
2022-09-21 关注 0 浏览13 0答案
-
说说AOP和IOC的概念及其在Spring中是如何应用的?
2021-09-17 关注 0 浏览94 1答案