AOP
- 格式:pdf
- 大小:249.90 KB
- 文档页数:12
用用AspectJ实现AOP
ቤተ መጻሕፍቲ ባይዱ
git@:*/aspectj.git
动态横切
•
join point: 程序的一一个精确执行行点,例如类中的 一一个方方法 point cut: 一一个捕获连接点的结构, 来捕获相关 方方法的调用用 advice :是point cut的执行行代码,是执行行“方方面面” 的具体逻辑。 aspect :point cut和advice结合起来就是 aspect,类似于OOP中定义的一一个类
作业
•
用用java动态代理实现:对于给定的任何一一个对象 在方方法调用用前后打印log
三棱镜法则
识别模块关注点
weave
关注点分解 横切关注点实现 重新织入入
AOP的发展
• • • • •
1990, PARC 研究员 提出新的编程思想 2002, AspectJ, 最先出现在java平台 AspectWerkz -> AspectJ 5 JBoss/ Spring Aspect #
•
•
•
静态横切
•
introduce: 为对象引入入附加的方方法或属性,从而而 达到修改对象结构的⺫目目的。 有的AOP工工具又又将其称为mixin。
Spring AOP
•
Java 动态代理
利用用反射生生成代理借口口的匿名类
•
CGLIB: Code Generation Library
对代理对象的class文文件加载修改生生成子子类
AOP
• • •
Aspect -Oriented Programming 抽取公共功能, 减少重复,低耦合 分离业务逻辑和系统级服务
OOP vs AOP
• • •
OOP 封装 继承层次 从上到下 AOP 分散的对象 公共行行为 从左到右 日日志、 安全验证 横切代码
新的系统观
系统: 由关注点组合实现 关注点: 完成特定的⺫目目的 核心心关注点 横切关注点