皮皮网
皮皮网

【神奇公式指标 源码】【番薯网源码】【spring源码插件】pointcut源码

来源:租号源码 发表时间:2024-12-29 02:03:31

1.细聊AOP理论
2.Spring实战——面向切面的源码Spring1.5使用注解创建切面
3.AOP 相关术语

pointcut源码

细聊AOP理论

       1、什么是AOP

        AOP(Aspect Orient Programming) : 面向切面编程

        Aspect :表示切面, 给业务方法增加的功能,叫做切面。 切面一般都是非业务功能, 而且切面功能一般都是可以复用的。 例如 日志功能, 事务功能, 权限检查,参数检查, 统计信息等等。

        Orient:面向,对着

        Programming:编程。

        2、 怎么理解面向切面编程 ? 以切面为核心设计开发你的应用。

        1)设计项目时, 找出切面的功能。

        2)安排切面的执行时间, 执行的位置。

       3、AOP的作用:

        1)让切面功能复用

        2)让开发人员专注业务逻辑。 提高开发效率

        3)实现业务功能和其他非业务功能解耦合。

        4)给存在的业务方法, 增加功能,不用修改原来的代码

        4、AOP中术语

        1)Aspect:切面, 给业务方法增加的功能。

        2)JoinPoint:连接点, 连接切面的业务方法。 在这个业务方法执行时,会同时执行切面的功能。

        3)Pointcut: 切入点, 是一个或多个连接点集合。 表示这些方法执行时,都能增加切面的功能。

        表示切面执行的位置。

        4)target: 目标对象, 给那个对象增加切面的功能, 这个对象就是目标对象。

        5)Advice:通知(增强),表示切面的执行时间。 在目标方法之前执行切面,还是目标方法之后执行切面。

        AOP中重要的三个要素: Aspect, Pointcut , Advice. 这个概念的理解是: 在Advice的时间,在Pointcut的位置, 执行Aspect

        AOP是一个动态的思想。 在程序运行期间,创建代理(ServcieProxy),使用代理执行方法时,增加切面的功能。这个代理对象是存在内存中的。

        5、什么时候你想用AOP

        你要给某些方法 增加相同的一些功能。 源代码不能改。 给业务方法增加非业务功能,也可以使用AOP

        6、AOP技术思想的实现

        使用框架实现AOP。 实现AOP的框架有很多。 有名的两个

        1) Spring : Spring框架实现AOP思想中的部分功能。 Spring框架实现AOP的操作比较繁琐,比重。

        2) Aspectj : 独立的框架,专门是AOP。 属于Eclipse

       7、通知

        Aspectj表示切面执行时间,用的通知(Advice)。 这个通知可以使用注解表示。

        讲5个注解, 表示切面的5个执行时间, 这些注解叫做通知注解。

        @Before : 前置通知

        @AfterRetunring: 后置通知

        @Around: 环绕通知

        @AfterThrowing:异常通知

        @After:最终通知

       8、Pointcut 位置

        Pointcut 用来表示切面执行的位置, 使用Aspectj中切入点表达式。

Spring实战——面向切面的Spring1.5使用注解创建切面

       使用注解创建切面是Spring实战中的重要技巧,它简化了AspectJ 5以前繁琐的源码Java语言扩展,使得任何类可以轻易转换为切面。源码通过定义切面,源码我们可以将非核心关注点(如观众的源码行为)与核心功能分离,提高代码的源码神奇公式指标 源码可维护性。

       在定义切面时,源码首先使用@AspectJ注解标记Audience类,源码其中的源码三个通知方法(takeSeats, silence CellPhones, applause, demandRefund)利用@Before, @AfterReturning, @AfterThrowing注解表明执行时机。这些注解都引用了一个切点表达式,源码但重复使用可能会显得冗余。源码为了解决这个问题,源码@PointCut注解允许我们在切面内部定义可重用的源码切点,如performance()方法。源码

       Audience作为注解切面,源码通过Spring自动代理功能,当装配为bean时,番薯网源码其注解通知将自动应用到匹配的bean上。启用自动代理的方式可以是JavaConfig或XML配置。Spring的AspectJ自动代理实际上是一个基于代理的实现,尽管使用了注解,但它仍然局限于代理方法的调用。

       要充分利用AspectJ的能力,需要在运行时启用AspectJ,而不是spring源码插件依赖Spring。环绕通知是强大的,它可以包裹目标方法,实现前置和后置通知的组合。通过创建一个环绕通知,如watchPerformance(),我们可以在一个方法中统一处理前后行为。

       切面处理参数的方法可以是通过参数化的通知,如记录磁道播放次数的php 比较 源码TrackCounter切面。引入新功能可以通过AOP的引入概念,为Spring bean添加新的方法,即使这些方法在原始实现中不存在。

       总的来说,注解创建切面提供了简洁的编程方式,但源码的可访问性是其使用的一个前提。在Spring中,注解和自动代理简化了切面声明,期货附源码但也需要一定的条件。

AOP 相关术语

       AOP中,关键术语的解释如下:

       连接点(Joinpoint): 在Spring框架中,这些指的是被拦截的对象,特别是方法,因为Spring主要支持的是方法级别的连接点。简单来说,它是目标对象中所有可被拦截的点。

       切入点(Pointcut): 定义了我们希望对哪些连接点进行拦截的范围。这个概念帮助我们确定哪些方法需要增强或修改行为。

       通知(Advice): 是AOP的核心,拦截到连接点后,通知定义了后续的操作。包括前置通知(在方法执行前执行)、后置通知(在方法执行后执行)、异常通知(处理方法异常)、最终通知(无论方法执行结果如何都会执行)和环绕通知(围绕方法执行的完整流程)。

       引介(Introduction): 是一种特殊的通知,它能在不修改类源代码的情况下,为类动态添加方法或字段,提供了一种灵活的扩展方式。

       目标对象(Target): 是代理的目标,即原始的对象或被代理的对象,即通知增强的对象。

       织入(Weaving): 是将增强应用到目标对象,生成新代理对象的过程。Spring使用动态代理实现织入,而AspectJ则支持编译期和类装载期的织入方式。

       代理(Proxy): 一个对象经过AOP的增强后,会生成一个新的代理对象,用于包裹和增强原始对象的行为。

       切面(Aspect): 最终,切面是切入点(Pointcut)和通知(Advice)的结合体,它定义了何时何地以及如何执行通知。通过切面,我们能够实现代码的解耦和模块化增强。

相关栏目:休闲