在典型的面向对象的开发方式中,可能要将日志记录语句放在所有方法和JAVA类中才能实现日志功能. 在AOP方式中,可以反过来将日志服务
模块化,并以声明的方式将它们应用到需要日志的组件上.
AOP的功能完全集成到了SPRING事务管理,日志和其他各种特性的上下文中.
连接点(join points):在计算机科学中,“连接点”是连接程序中“控制流程(control flow)”的点。在面向方面的编程中,一系列的连接点集合被描述为“切入点”。连接点是主程序和“方面”的相会之处。在面向对象语言中,连接点是程序执行中定义良好的点。这些点包括方法和构造函数的调用、字段访问以等等内容
切入点(pointcut):在面向方面计算机编程中,切入点是一系列连接点的集合。当程序执行到切入点所描述的其中一个连接点时,与这个切入点相关的代码片(被称为通知)就会被执行。这就使得一个程序员可以描述“何处”以及“何时”在已定义的行为之外去执行附加的代码。这样就能向已经存在的软件增加新的方面(aspects),或者是软件的设计带有清晰的“关注分离(separation of concerns)”的特点,从而使编程者将不同的方面融入到一个完整的应用中。
通知(advice): 在面向方面计算机编程中,一片“通知”描述用于应用于程序中给定连接点的一个函数(function)、方法(method)和过程(procedure) 。
连接点模型(Join point models)
面向方面语言中与通知相关的组件定义了一个连接点模型(join point model-JPM),JPM定义了三件事情:
何时(advice)通知可以运行。之所以叫连接点(join points)是因为它们是正在运行程序中那些附加行为可以被有效接入的点。为了使之可用,连接点需要被普通程序员所表达和理解。(为了使应用的某个方面在跨越不连贯的变化时保持稳定,连接点应当在跨越这些变化时稳定
一种指定(或者量化)连接点的方法,称之为“切入点”。切入点决定一个给定的连接点是否匹配。大多数有效的切入点语言使用类似基础语言的语法(例如,AspectJ 使用java符号),并且允许通过命名和组合来实现(切入点)重用(reuse)。
一种指定代码在连接点处运行的方法。在AspectJ中,被称为通知(advice),并且能够在连接点之前、之后或者包围连接点运行。
AOP编程的适用领域
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
posted on 2007-11-01 15:32
紫蝶∏飛揚↗ 阅读(443)
评论(0) 编辑 收藏 所属分类:
Spring