spring aop小记

一、aop概念

面向切面编程

参考:https://blog.csdn.net/lhj520cb/article/details/125820513

常用术语解释(根据代码理解的):

Aspect(切面):Advice 通知(即增强)和 Pointcut 切点的结合。(数学上可以理解为无数个点组成面,所以aop中一个切面也可以有若干个切点)
point cut(切点):切点是指增强(Advice)所要织入(Weaving)的具体位置
advice(增强): 所要增强的功能,它与切点 point cut 绑定关联在一起
Weaving(织入) 我的理解是,增强和切点进行绑定和关联的过程成为织入
(Join Point)连接点 : 我的理解是,通知和切点关联之后(织入之后),才会产生连接点。是他们两个的孩子,连接点不能单独产生使用。
比如:

@Aspect  //切面
@Component
public class ApiLogAspect {

    /**
     * 切点
     */
    @Pointcut("@annotation(com.wang.annotation.ApiLog)")
    public void pointcut(){};

    /**
     * 增强
     * @param pjp  ProceedingJoinPoint  连接点 此连接点专门用于环绕通知
     * @return
     */
    @Around("pointcut()") //织入
    //绑定之后才会产生JoinPoint 或 ProceedingJoinPoint连接点,  
    //然后从连接点中获取切面对象上下文信息,比如
	// getTarget():获取被代理的对象信息
	//getgetArgs():获取传入该方法的参数信息
	// getSignature().getName():获取方法名称
	// getSignature().getModifiers():获取方法的声明类型
    public Object aroundAdvice(ProceedingJoinPoint pjp){
        String name = pjp.getSignature().getName();
        System.out.println("环绕通知:"+name);
        return name;
    }
}

增强的类型

在这里插入图片描述

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring AOP(面向切面编程)是Spring框架中的一个模块,它提供了一种在程序运行期间将横切逻辑(例如日志记录、性能统计、事务管理等)与业务逻辑进行解耦的方式。 在Spring AOP中,横切逻辑被封装成一个切面(Aspect),而被切入的业务逻辑则被称为目标对象。通过在目标对象的方法执行前、执行后或抛出异常时插入切面的逻辑,我们可以实现横切关注点的复用和集中管理。 Spring AOP采用了动态代理的方式实现切面的织入。在运行时,Spring会为目标对象动态地生成一个代理对象,该代理对象包含了切面逻辑,并将它们织入到目标对象的方法中。这样,当调用目标对象的方法时,切面的逻辑也会被执行。 在使用Spring AOP时,我们需要定义切面和切点。切面是一个类,其中包含了横切逻辑的具体实现。切点则定义了目标对象中哪些方法将被织入切面逻辑。 Spring AOP支持多种类型的通知(Advice),包括前置通知(Before)、后置通知(After)、返回通知(After-returning)、异常通知(After-throwing)和环绕通知(Around)。我们可以根据需要选择不同类型的通知来实现不同的横切逻辑。 总的来说,Spring AOPSpring框架中的一个重要特性,它提供了一种灵活、简洁的方式来实现横切关注点的解耦和复用。通过使用Spring AOP,我们可以更加便捷地实现一些与业务逻辑无关但又需要在业务逻辑中执行的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值