【分享】 Spring AOP的基本概念

jackson_fighting 2012-09-08 07:09:07
前面发过代理模式的基本概念。
http://topic.csdn.net/u/20120903/18/5bbb977b-b805-4316-aba0-594445206e51.html
下面来说说AOP的一些基本,当温习一下吧。
AOP:是在一个在切面上编程, 弥补OOP不足的一种编程思想, 可以在顺序执行的程序中,
插入某些特殊的逻辑来实现一些特殊的功能
总体来说:OOP提高了代码的重用,设计模式解决了模块之间的耦合,AOP解决了某个模块内部的变化问题。
AOP把软件系统分为两部分:
1、核心关注点(业务处理为主)
2、横切关注点(与业务无关如日志等)
核心思想:将商业逻辑同对其提供支持的通用服务进行分离;
在一个服务的流程中插入与业务逻辑无关的系统服务逻辑(例如Logging、Security),这样的逻辑称为Cross-cutting concerns(前一篇帖子中提到)
* 切面(Aspect)
将散落于各个业务逻辑之中的Cross-cutting concerns收集起来,设计成各个独立可重用的对象,这样的对象称之为Aspect。

* 通知(Advice)
Aspect当中对Cross-cutting concerns的具体实现称之为Advice。Advice中包括了Cross-cutting concerns的行为或所要提供的服务。

* 连接点(Joinpoint)
Advice在应用程序执行时加入业务流程的点或时机。

* 切入点(Pointcut)
定义了感兴趣的Jointpoint,当调用的方法符合Pointcut表达式时,将Advice织入至应用程序上提供服务

*目标对象(Target Object)
一个Advice被应用的对象或目标对象,如前面的HelloSpeaker就是LogHandler中Advice的Target

*引入(Introduction)
在不修改原程序代码的情况下,为现存的类引入新的方法或行为

* AOP代理(AOP Proxy)
是由AOP框架创建的对象,用来实现切面契约(包括通知方法执行等功能)

* 织入(Weave)
Advice被应用到对象之上的过程称之为织入(Weave)

这里是关系图:


...全文
96 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackson_fighting 2012-09-08
  • 打赏
  • 举报
回复
百度了一下 发图片好像是开通博客 然后上传图片 于是我就开通了。
但是
开通博客三天内不允许发表文章。

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧