Spring的AOP简介

Aspect Oriented Programming的缩写,意思为面向切面编程,时通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生泛型,利用AOP可以对业务逻辑进行各个部分的隔离,从而使得业务逻辑各部分之间耦合度降低,提高程序的可重用性,同时提高开发效率。

A\B\C\D是四个功能模块,B\C\D都需要和A功能结合才能实现自己的业务逻辑,不需要在每一个里面都写A,只需要把A独立出来再调用。

目标方法+功能增强方法=切面?

通过对于配置文件的修改从而实现不同功能的组合

1.2 AOP的底层实现

实际上,AOP的底层是通过Spring提供的动态代理技术实现的,在运行期间,Spring通过动态代理技术动态的生成代理对象,代理对象方法执行时进行增强功能的介入,在去调用目标对象的方法,从而完成功能的增强。

1.3 AOP 的动态代理技术

• JDK代理:基于接口的动态代理技术

JDK代理的动态代理 Dymanic Proxy-CSDN博客

• cglib代理:基于父类的动态代理技术(可以没有接口)

相关推荐
砚底藏山河1 小时前
【量化纯GET实战 #21】用 pandas 做分析:把接口数据变成 DataFrame
java·python·金融·maven·pandas
Zzzzmo_1 小时前
Spring MVC
java·spring·mvc·cookie/session
cfm_29141 小时前
Spring核心设计模式
java·spring·设计模式
Java小白笔记1 小时前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
2333!!!!!1 小时前
rocket新手一些常见问题
java·开发语言
yume_sibai1 小时前
02-Rust 所有权与借用深入解析(底层原理 + 借用检查器 + 生命周期 + 内部可变性)
开发语言·后端·rust
卷无止境1 小时前
从脚本到程序:Windows平台上的Python打包全景图
后端·python
骇客野人1 小时前
Springboot 的 配置文件 application.yml 和 bootrap.yml 的由来和作用
java·spring boot·后端
wuminyu1 小时前
JVM锁膨胀与Futex源码解析
java·linux·c语言·jvm·c++