乐趣区

关于spring:SpringAOP

AOP

AOP(Aspect Oriented Programming),即面向切面编程,能够说是 OOP(Object Oriented Programming,面向对象编程)的补充和欠缺。OOP 引入封装、继承、多态等概念来建设一种对象层次结构,用于模仿公共行为的一个汇合。不过 OOP 容许开发者定义纵向的关系,但并不适宜定义横向的关系,例如日志性能。日志代码往往横向地分布在所有对象档次中,而与它对应的对象的外围性能毫无关系对于其余类型的代码,如安全性、异样解决和通明的持续性也都是如此,这种分布在各处的无关的代码被称为横切(cross cutting),在 OOP 设计中,它导致了大量代码的反复,而不利于各个模块的重用。

AOP 技术恰恰相反,它利用一种称为 ” 横切 ” 的技术,剖解开封装的对象外部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为 ”Aspect”,即切面。所谓 ” 切面 ”,简略说就是那些与业务无关,却为业务模块所 独特调用的逻辑或责任封装起来,便于缩小零碎的反复代码,升高模块之间的耦合度,并有利于将来的可操作性和可维护性

应用 ” 横切 ” 技术,AOP 把软件系统分为两个局部:外围关注点 横切关注点。业务解决的次要流程是外围关注点,与之关系不大的局部是横切关注点。横切关注点的一个特点是,他们常常产生在外围关注点的多处,而各处根本类似,比方权限认证、日志、事物。AOP 的作用在于拆散零碎中的各种关注点,将外围关注点和横切关注点拆散开来。

退出移动版