Spring框架学习——AOP
一、什么是AOP?
AOP(Aspect-Oriented Programming), 即 面向切面编程, 它与 OOP( Object-Oriented Programming,面向对象编程) 相辅相成, 提供了与 OOP 不同的抽象软件结构的视角.
在 OOP 中, 我们以类(class)作为我们的基本单元, 而 AOP 中的基本单元是 Aspect(切面)
二、AOP的几种实现方式
实现 AOP 的技术,主要分为两大类:
静态代理 - 指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强:
- 编译时编织(特殊编译器实现)
- 类加载时编织(特殊的类加载器实现)。
动态代理 - 在运行时在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。
- JDK 动态代理:通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口 。JDK
动态代理的核心是 InvocationHandler 接口和 Proxy 类 。
- CGLIB 动态代理: 如果目标类没有实现接口,那么 Spring AOP 会选择使用 CGLIB 来动态
代理目标类 。 CGLIB ( Code Generation Library ),是一个代码生成的类库,可以在运行
时动态的生成某个类的子类,注意, CGLIB 是通过继承的方式做的动态代理,因此如果某个
类被标记为 final ,那么它是无法使用 CGLIB 做动态代理的。
三、Spring AOP and AspectJ AOP 的区别
Spring AOP 基于动态代理方式实现;AspectJ 基于静态代理方式实现。
Spring AOP 仅支持方法级别的 PointCut;提供了完全的 AOP 支持,它还支持属性级别的 PointCut。
四、AOP的应用场景
场景一: 记录日志
场景二: 监控方法运行时间 (监控性能)
场景三: 权限控制
场景四: 缓存优化 (第一次调用查询数据库,将查询结果放入内存对象, 第二次调用, 直接从内存对象返回,不需要查询数据库 )
场景五: 事务管理 (调用方法前开启事务, 调用方法后提交关闭事务 )
Spring框架学习——AOP相关推荐
- Spring框架学习笔记(三)(AOP,事务管理)
Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...
- 详解Spring框架的AOP机制
AOP是Spring框架面向切面的编程思想,AOP采用一种称为"横切"的技术,将涉及多业务流程的通用功能抽取并单独封装,形成独立的切面,在合适的时机将这些切面横向切入到业务流程指定 ...
- Spring框架学习(二)
Spring框架学习笔记---->AOP AOP概念 AOP:aspect oriented programing,面向切面编程. 将软件的各个模块,按照横向的角度进行观察,发现各个模块之间存在 ...
- Spring框架学习笔记,超详细!!(4)
Java小白开始学习Spring框架,一方面,跟着视频学习,并记录下学习笔记,方便以后复习回顾.另一方面,发布学习笔记来约束自己,学习路程还很遥远,继续加油坚持!!!希望能帮助到大家! 另外还有我的牛 ...
- Spring 框架之 AOP 原理深度剖析!|CSDN 博文精选
作者 | GitChat 责编 | 郭芮 出品 | CSDN 博客 AOP(Aspect Oriented Programming)面向切面编程是 Spring 框架最核心的组件之一,它通过对程序结构 ...
- Spring框架学习-Spring和IOC概述
一:什么是Spring框架? spring是一个分层的javase/EEfull-stack(一站式)轻量级的java开源框架.是为了解决企业开发的复杂性而创建的.框架的主要优势是分层架构,Sprin ...
- Spring框架学习笔记---完结
一.简介 Spring:春天----->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架. 2004年3月24日,Spring框架 ...
- Spring框架学习路线
文章目录 1.Spring 1.1.简介 1.2.优点 1.3.扩展 2.IOC理论 2.1.IOC的创建对象的方法 3.Spring配置 3.1.Bean配置 3.2.import 4.依赖注入 4 ...
- Spring框架学习笔记(1) ---[spring框架概念 , 初步上手使用Spring , 控制反转 依赖注入初步理解 ]
spring官网 -->spring官网 spring5.3.12–>spring-framework 在线文档 --> Spring 5.3.12 文章目录 1.Spring概论 ...
- 史上最全面最易懂的,Spring框架学习教程
Spring通过PlatformTransactionManager平台事务管理器接口对事务的管理进行高度抽象,但是该接口下具体的实现是由各个平台自己实现,Spring并不直接管理事务,而是提供了多种 ...
最新文章
- 如何在博客等文章中添加带有滚动条的文本框
- 数据结构:哈希表函数构造和冲突解决方法
- Css 分类 属性 选择器
- linux hbase 表大小,在Linux系统搭建hbase环境
- linux rsh配置 A主机无需密码登录B主机
- 关于微信支付后回调验证的处理
- 电子测量技术——基于Python的测量数据误差处理程序
- html5 drag api
- 【Postman】使用Tests进行环境变量设置
- vue脚手架安装步骤详情
- ios 裁剪框大小_ios 图片裁剪修改尺寸的方法总结
- ppt文字磨砂玻璃效果制作教程
- 抖音2018大数据分析报告
- 原生JS实现7中简单效果
- Google发布文本内容生成短视频工具:Imagen Video
- 统信UOS提示系统磁盘空间不足,磁盘扩容
- php微博毕业论文,php校园微博网站
- DataStage简介
- git 和 phabricator arc 常用 命令解析
- bpmn不带网关的流程
热门文章
- 华为精益看板探索之路【PPT+注解】
- MacOS升级Big Sur后32位锐捷客户端排坑历程
- 软件工程-软件维护/系统维护
- django学习日志(模板的渲染过程)第八部分:字符串数据转义
- Oracle统一访问代理层方案
- Ubuntu更新下载源
- 利用Github服务器做一个软件自动升级系统
- python tts 离线 linux_ubuntu16.04安装科大讯飞Linux SDK实现离线语音合成(TTS)
- 国内网络游戏企业的困境和出路
- php postgresql 数组,8.14. 数组 - [ PostgreSQL 手册 ] - 在线原生手册 - php中文网