博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring的AOP
阅读量:6359 次
发布时间:2019-06-23

本文共 774 字,大约阅读时间需要 2 分钟。

AOP,全称Aspect—Oriented Programming,面向切面编程。

他是一种称为“横切”的技术,剖解封装对象的内部,并将那些影响多个类的公共行为封装进一个可复用模块(Aspect),即切面,简单来讲,就是将那些与业务无关但是却需要被业务模块调用的逻辑封装起来,减少重复代码,降低耦合度(遵循高内聚,低耦合原则),有利于后续的操作和维护。
AOP代表的是一个横向的关系,如果说“对象”是一个空心的圆柱体,其中封装的是对象的属性和行为;那么面向切面编程的方法,就仿佛一把刀,将这些空心圆柱体剖开,以获得其内部的消息。而剖开的面,也就是所谓的“切面”了。然后它又以巧夺天功的妙手将这些剖开的切面复原,不留痕迹。
AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处都基本相似。比如权限认证、日志、事务处理。Aop 的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来。

使用范围:

Transactions 事务
Synchronization 同步
Persistence  持久化
Resource pooling 资源池
等等......

配置:

A、配置可以通过xml文件来进行,大概有四种方式:
B、配置ProxyFactoryBean,显式地设置advisors, advice, target等
C、配置AutoProxyCreator,这种方式下,还是如以前一样使用定义的bean,但是从容器中获得的其实已经是代理对象
D、通过<aop:config>来配置
E、通过<aop: aspectj-autoproxy>来配置,使用AspectJ的注解来标识通知及切入点

使用见下一篇

转载地址:http://mtbma.baihongyu.com/

你可能感兴趣的文章
磁盘UUID以及卷标
查看>>
android文件下载
查看>>
python之string模块的find用法
查看>>
linux系统编程之信号(三):信号安装、signal、kill,arise讲解
查看>>
nat和dr的分发器抓包比较
查看>>
LVM2
查看>>
悠然乱弹:关于优先队列
查看>>
oracle 内所有数据类型
查看>>
iOS 获取html中的所有图片链接地址
查看>>
SQL表连接查询(inner join、full join、left join、right join)
查看>>
2018-3-11Linux系统管理(10)(11)程序包初步概念及后端管理工具(1)
查看>>
TypeScript基础入门 - 类 - 存取器
查看>>
JAVA中的内存溢出
查看>>
Android NDK 对于c++的支持(mk文件内编译选项)
查看>>
《Python 2.1 宝典》读书笔记
查看>>
JAVA的反射基础
查看>>
我的友情链接
查看>>
windows2003系统故障 停止错误的原因与解决办法
查看>>
Chapter 3 Extending Classes
查看>>
马哥培训,努力的我,来吧
查看>>