Spring AOP架构设计解析

一、AOP(Aspect Oriented Programming)Aspect:方面/层面;Oriented:朝向

1、面向方面(切面)编程

2、Spring基于代理实现AOP

3、业务作用类似于过滤器,比过滤器强大

二、AOP实现方式

1、静态AOP实现,修改class文件,优点是效率高

2、动态AOP实现,运行时,生成代理类,效率低,目前普遍使用这种方式

三、AOP核心概念

Aspect:切面,(切入点+通知)

Join Point:连接点,允许切入通知的位置(方法执行前后,异常)

Advice:通知,通用逻辑的实现如:权限、日志模块、事物等

Pointcut:切入点,在连接点的基础上选定切入的位置

Introduction:引入,为类添加新的方法和属性

Target Object: 被一个或多个切面所通知的对象

AOP Proxy:AOP框架创建的对象,用来实现切面完成通知

Weaving:织入,将切面应用到目标类创建aop代理类的过程。编译器织入(需要依赖特定编译器)、类加载器织入(需要特定类加载器)、运行时织入(Spring建议使用这个,方便维护,即使牺牲一点性能)

四、Spring AOP实现原理

1、Java动态代理,处理接口的代理类

2、Cglib动态代理,处理类的代理类,原理是构造子类,继承父类的方式扩展功能,所以不能通过final修饰

相关推荐
一只叫煤球的猫2 小时前
写代码很6,面试秒变菜鸟?不卖课,面试官视角走心探讨
前端·后端·面试
bobz9652 小时前
tcp/ip 中的多路复用
后端
bobz9652 小时前
tls ingress 简单记录
后端
皮皮林5514 小时前
IDEA 源码阅读利器,你居然还不会?
java·intellij idea
你的人类朋友4 小时前
什么是OpenSSL
后端·安全·程序员
bobz9654 小时前
mcp 直接操作浏览器
后端
前端小张同学6 小时前
服务器部署 gitlab 占用空间太大怎么办,优化思路。
后端
databook6 小时前
Manim实现闪光轨迹特效
后端·python·动效
武子康7 小时前
大数据-98 Spark 从 DStream 到 Structured Streaming:Spark 实时计算的演进
大数据·后端·spark
该用户已不存在7 小时前
6个值得收藏的.NET ORM 框架
前端·后端·.net