皮皮网

【eos开发项目源码】【源码放tomcat】【app社工源码】afterthrowing 源码

2024-11-23 08:46:36 来源:培训宝源码

1.【Spring实战——面向切面的Spring】1.5使用注解创建切面
2.细聊AOP理论

afterthrowing 源码

【Spring实战——面向切面的Spring】1.5使用注解创建切面

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

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

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

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

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

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

细聊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中切入点表达式。