AOP

简介: AOP

代理分为静态代理动态代理,静态代理,顾名思义,就是你自己写代理对象,动态代理,则是在运行期,生成一个代理对象。


Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用JDK Proxy去进行代理了


(为啥?你写一个JDK Proxy的demo就知道了),这时候Spring AOP会使用Cglib,生成一个被代理对象的子类,来作为代理,放一张图出来就明白了:



好,上面讲的是AOP的第一种实现,运行时织入


但是不是所有AOP的实现都是在运行时进行织入的,因为这样效率太低了,而且只能针对方法进行AOP,无法针对构造函数、字段进行AOP。


我完全可以在编译成class时就织入啊,比如AspectJ,当然AspectJ还提供了后编译器织入和类加载期织入,这里我就不展开讨论了



相关文章
|
运维 监控 安全
云计算MSP行业调研报告
# 1. 概述 ## 1.1 背景和概念 企业上云是当前的大势所趋,但企业上云并非坦途。随着业务、数据等向云端迁移,企业在上云过程中会各种复杂的问题,比如平台选择、系统迁移、多云管理、应用优化以及成本核算和安全管理等问题。要解决这些问题,就需要专业的团队来指导,因此诞生了云MSP。 云MSP即云管理服务提供商(Cloud Management Service Provider),通常是指对接
4663 0
云计算MSP行业调研报告
Need to install docker-compose(1.18.0+) by yourself first and run this script again.
Need to install docker-compose(1.18.0+) by yourself first and run this script again.
477 0
|
数据安全/隐私保护
金盾金狮pbb爱问云点盾云加密视频录屏翻录提取教程
此软件专为录制加密网络课程视频设计,能轻松录制通常因加密而无法显示或录制的视频内容,并且录制过程隐蔽不被检测,输出文件为通用MP4格式。使用步骤简易:首先播放视频,然后打开软件并登录,即可开始录制。
2294 18
|
缓存 监控 安全
Spring AOP 详细深入讲解+代码示例
Spring AOP(Aspect-Oriented Programming)是Spring框架提供的一种面向切面编程的技术。它通过将横切关注点(例如日志记录、事务管理、安全性检查等)从主业务逻辑代码中分离出来,以模块化的方式实现对这些关注点的管理和重用。 在Spring AOP中,切面(Aspect)是一个模块化的关注点,它可以跨越多个对象,例如日志记录、事务管理等。切面通过定义切点(Pointcut)和增强(Advice)来介入目标对象的方法执行过程。 切点是一个表达式,用于匹配目标对象的一组方法,在这些方法执行时切面会被触发。增强则定义了切面在目标对象方法执行前、执行后或抛出异常时所
16524 4
|
数据安全/隐私保护
【Axure教程】通用权限管理原型(上)
【Axure教程】通用权限管理原型
【Axure教程】通用权限管理原型(上)
|
弹性计算 关系型数据库 分布式数据库
PolarDB 开源部署体验评测
PolarDB开源部署方式全解读,带你全方位了解PolarDB部署的那些事。
27973 12
|
Java
AOP详细介绍
AOP(Aspect-Oriented Programming)是一种编程范式,旨在通过将横切逻辑(cross-cutting concerns)从核心业务逻辑中分离出来,以提高代码的可维护性和可重用性。在Java中,AOP可以通过动态代理来实现。
629 0
|
SQL NoSQL Cloud Native
数据库的类型(TP、AP、NoSQL、工具)(二)
数据库的类型(TP、AP、NoSQL、工具)(二)
1655 0
|
运维 监控 应用服务中间件
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
【运维知识高级篇】34道Shell编程练习题及答案(从基础到实战:基础+计算+判断+循环+控制与数组+实战进阶)(二)
1415 0
|
SQL 存储 NoSQL
数据库的类型(TP、AP、NoSQL、工具)(一)
数据库的类型(TP、AP、NoSQL、工具)(一)
2817 0