美文网首页
SpringAOP概述

SpringAOP概述

作者: 瓢鳍小虾虎 | 来源:发表于2020-12-24 15:41 被阅读0次

Aspect:所谓切面,面向的不是某一个对象的某一个方法,而是所有对象的某个方法,或者满足某些条件的对象的满足某些条件的方法,面向的不是点,而是面。

JoinPoint:切面内有很多的切点,可以表示为方法的开始和结束两端,可以用来在方法前后做一些处理,相当于在方法内前后都加了一些代码执行一些逻辑,但是具体不是这样实现的,而是用代理对象实现的。具体有2种方式:cglib和动态代理。

cglib:cglib是一个代码生成库,主要用于aop框架,拦截方法等操作。

cglib vs 动态代理:
1)cglib底层使用ASM框架,主要原理是操作字节码生成新的类。
2)动态代理只能代理接口,如果一个普通类没接口就没法代理。
3)动态代理提供Proxy类创建代理,cglib提供Enhancer类创建代理。
4)两者都可用于aop实现。

beforeAdvice/afterAdvice:方法开始的切点做的事情就叫beforeAdvice,方法结束的切点做的事情就叫afterAdvice。

Pointcut:类似于一种横切的动作,在程序中通常用注解@Pointcut表示,用来设置匹配切点的规则。spring也提供了一些简便的注解如@annotation等。

// 匹配所有public定义的方法
@Pointcut("execution(public * *(..))")
private void anyOperation(){}

// 匹配所有以set开始命名的方法
@Pointcut("execution(* set*(..))")
private void anyOperation1(){}

// 匹配对应包下的所有方法
@Pointcut("within(com.abc.def..)")
private void anyOperation2(){}

// 匹配带有注解com.abc.def.anno的所有方法
@Annotation("com.abc.def.anno")
private void anyOperation3(){}

相关文章

  • SpringAOP概述

    Aspect:所谓切面,面向的不是某一个对象的某一个方法,而是所有对象的某个方法,或者满足某些条件的对象的满足某些...

  • SpringAOP实现原理

    1. 概述 SpringAOP(Aspect Orient Programming)是一种设计思想,称为面向切面编...

  • 2021-06-14_SpringAop手动定义切面及切点学习笔

    20210614_SpringAop手动定义切面及切点学习笔记 1概述 本节主要学习下自定义切面及切点,完成spr...

  • spring框架 AOP

    10、 代理模式 为什么要学习代理模式?因为这就是SpringAOP的底层!【SpringAOP 和 Spring...

  • spring源码解析-基于注解的SpringAOP源码解析(二)

    在Spring源码解析之基于注解的SpringAOP源码解析(一)中,我们搭建了SpringAOP源码分析的环境,...

  • 六、AOP实现自动的系统日志功能

    一、本课目标 掌握SpringAOP的配置 二、使用SpringAOP实现日志输出 在下面的这个示例中,通过Spr...

  • SpringAOP

    SpringAOP-PPT SpringAOP视频 面向切面编程(AOP)通过提供另外一种思考程序结构的途经来弥补...

  • springAOP

    springAOP切面拦截参数进行校验。

  • Spring AOP源码分析

    前言 通过之前的俩篇文章,我们大体上已经知道如何使用SpringAOP了,同时也了解到了SpringAOP底层使用...

  • Spring AOP 一

    上一篇讲了jdk动态代理,下面我们来说说SpringAOP。SpringAOP是基于动态代理的,它对动态代理又做了...

网友评论

      本文标题:SpringAOP概述

      本文链接:https://www.haomeiwen.com/subject/vvjmnktx.html