锁定老帖子 主题:AOP原理及在架构设计中的应用(三)
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
||
---|---|---|
作者 | 正文 | |
发表时间:2008-08-17
AOP原理及在架构设计中的应用(三)
【摘要】 面向方面的编程(AOP)技术已在Java领域产生多年,它为传统的编程模式带来了一种新的思维和方式。AOP本身为程序结构带来的灵活性,在JavaEE架构设计上也能发挥极大的作用。本文对AOP原理,Spring AOP基本编码方式进行了简明,清晰的介绍,还对公司项目实践中AOP的基本应用模式进行了归纳,整理, 有更贴近实践的指导意义。
【关键词】AOP JavaEE 架构设计
2.2. AOP 应用举例 2.2.1. 基本功能1. 业务日志(工单) 凡是基于数据库的系统,本质上都是对库表记录的增删改查。而从业务层面看,很多时候,用户需要对数据的操作留下痕迹,即业务日志,以便审计。 在公司项目的J2EE架构中设计了业务日志拦截器,并切入对BO的操作,完成对业务操作的记录。用户可以通过专门的界面对业务日志进行查询和分析。 工作原理 业务日志的基本数据格式为: 操作时间,来源IP,操作工号,操作状态,操作动作,操作类型,失败原因,数据 日志按操作类型分:增加,删除,修改(查询暂不记录), 操作成功,失败时都要记录。记录业务日志的主要依据是被拦截的对象和方法信息,。在执行方法本体后,即业务方法成功执行后,记录成功日志;在方法本体抛出异常时,记录失败日志。主要代码见下:
其中doLog方法将信息保存到库表中。(出于性能考虑,可以采用异步方式保存业务日志到数据库)。
2. 性能监控 Spring本身提供了一个监控拦截器,但功能不是很完善。公司项目架构中设计了一套Monitor框架,其功能包含:性能监控(Profiling , Monitoring),访问分析(Analyzing)两个方面。 Monitor可切入表示层,业务层BO,持久层DAO三层。Monitor包括以下功能: ¨ 按安模块和功能分析性能指标 ¨ 实时流量监控 ¨ 按模块和功能分析流量 ¨ 流量时间分布分析 ¨ 访问错误分析 这些功能较为全面的为系统管理员提供的系统的各项运行指标,方便用户查找性能瓶颈,进行性能调优。
实现原理: 在方法拦截之前(before),执行后(after)进行时间记录,并取差值,得到该方法的执行时间(单位:秒)就是该方法的执行性能;再将其连同模块名,类名,方法名等信息存入数据库,就可以进行多项性能和流量分析功能。其中流量分析可以采用内存变量存储,而不是根据监控记录进行分析。
3. 其他功能 利用AOP原理,为架构带来的其他功能还包括:数据缓存,安全检查,服务路由等等,例如Struts2,开源服务总线CXF等就以AOP为基础架设其基本架构和功能。 总之,将AOP技术运用在架构设计中,将为银行,电信,证券等大型系统的功能扩展性,灵活性,易用性带来很大的提升。
【参考文献】 1. 《spring2.0-reference》(中文版) 2. 《什么是AOP?》,邓辉, http://blog.chinaunix.net/u/1163/showart.php?id=434692 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
||
返回顶楼 | ||
浏览 2059 次