SpringAOP是啥,怎么用?

SpringAOP是啥,怎么用?

一、面试问题:什么是SpringAOP?

  • SpringAOP的全称是(Aspect Oriented Programming)中文翻译过来是面向切面编程,个人理解:主要意思是我们的传统架构至上而下,后期想要从中间切入写代码添加功能,比如日志、权限、事务等,这时候我们就需要写使用代理模式写,而springaop就是专门把这一块写代码的地方给抽象了出来称为切面,从而解决的代码混乱的问题,它的底层实现也是基于代理模式(动态代理)完成的。
  1. 二、SpringAOP的应用场景有哪些?

············我就把自己知道的给大家分享了。

  • 日志记录
  • 权限验证(SpringSecurity有使用)
  • 事务控制(调用方法前开启事务, 调用方法后提交关闭事务 )
  • 效率检查(检测方法运行时间)
  • 数据源代理(seata里面,获取到数据源连接执行的sql)
  • 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )

三、Spring的使用

先在主运行类上面写一个@EnableAspectJAutoProxy

@EnableAspectJAutoProxy
@SpringBootApplication
public class SeekServiceProvider {
    public static void main(String[] args) {
        SpringApplication.run(SeekServiceProvider.class, args);
    }
}
  1. 定义切面

    @Aspect
    @Component
    public class SeekAspect {
    }
    
  2. 定义切点(在上面这个类里面定义)

    @Pointcut("execution(* com.llds.seek.SeekAspect.*.*(..))")
    public void cusPointcut(){
        System.out.println("执行【cusPointcut】方法");
    }
    

切点表达式不会的朋友我把连接放下面了
切点表达式使用

  1. 定义通知(在上面这个类里面定义)

    @After("cusPointcut()")//后置通知/后置增强
    public void cusAfter(){
        System.out.println("执行【cusAfter】方法");
    }
    
    • 通知方式(常用)

      • 前置通知

        @Before("s()")
        public void before() {
        
        }
        
      • 后置通知

        @After("s()")
        public void after() {
        
        }
        
      • 环绕通知

        @Around("s()")
        public void around() {
        
        }
        
  • 12
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指陆为码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值