初始AOP
来源:互联网 发布:剑网三男捏脸数据 编辑:程序博客网 时间:2024/05/07 18:07
前段时间听了关于AOP的讲解,不明白什么是AOP,只知道它是面向切面编程,用的好像是动态代理,具体的不太了解。最近学习了王老师的动态代理,顺便也简单的查询了一下什么是AOP。
一、概述
AOP: (Aspect Oriented Programming) 面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
二、与OOP的比较
以前接触过OOP,它是面向对象编程,针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
举个例子:对于一个人来说,OOP是我们将人的相关属性和行为进行封装,让这个人作为一个业务实体进行调用,不用过多的去考虑人的相关细节,我们进行统一的复用即可。而对于一个人来说,用AOP去处理确实有点望尘莫及。但是针对吃东西这个动能,我们可以对其封装,然后让其对象进行复用。
这两种设计思想在目标上有着本质的差异。OOP面向名词领域,AOP面向动词领域。OOP是公共行为的一个集合,而AOP是一个分散的功能片段。
三、原理
AOP实现的关键就在于 AOP框架自动创建的 AOP代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP框架提供的命令进行编译,从而在编译阶段就可生成 AOP代理类,因此也称为编译时增强;而动态代理则在运行时借助于 JDK动态代理、CGLIB 等在内存中“临时”生成 AOP动态代理类,因此也被称为运行时增强。
四、小结
看来在前面不知不觉就已经将AOP的代码简单的实现,不过后期AOP还有很多地方值得我们挖掘,自己就先开个头,待后面好好挖掘。
- 初始AOP
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- Java之旅Spring框架学习(4)——初始AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- AOP
- 第十四周项目二——用文件保存的学生名单
- 不同机子tcp报文转发
- 文科生也能看懂的iptables教程(推荐)
- ios-通知:闹钟之关于设置闹钟后,点击app图标进入程序不播放音乐的问题(已解决)
- ROS下安装xtion pro live
- 初始AOP
- 回溯
- 计算中缺少MSCVR110.dll文件的解决方案
- Android源码mm模块编译 & mm编译apk
- Hadoop概述
- 鱼眼拼接之SIFT提取特征点
- mac下恢复eclipse的默认代码风格
- 中文分词技术(中文分词原理)
- SSI框架整合报错:Unable to load configuration