面向方面编程思想(AOP)一度是公开论战的中心。Gavin King 称之为完全言过其实、失败的技术,Cedric Beust 也对其成为编程主流思想表示极大的怀疑,但他仍然标榜 AOP 是非常好的思想,只是仅有一小部分开发专家才能真正掌握。
文章作者以一个大金融机构在最后一刻修改了一些横切关注点(cross cutting concern)需求为例,展示 AOP 技术给现实中的 JavaEE 项目所带来诸多好处。文中描述的场景和最终实现的解决方案很好地展现了 AOP 如何弥补 OOP 在商务应用模块化方面的不足。
文章作者一直采用 JavaEE 技术在为一个大型金融机构开发证券交易后台解决方案,使用 Oracle 10g RAC 做为数据库集群(database cluster)、Websphere MQ 为消息传送中间件。这个项目进入用户确认测试阶段(UAT phase)时,管理层要求在原有的集群构架上实现透明的应用程序失败转移(failover)服务。
传统解决方案是捕获每一个 SQLException 异常并加入特定的处理器去处理。但这个方案不得不被摒弃,因为在已经进入到用户验证测试阶段的情况下,这种方法会对代码库造成巨大恶劣的影响,而客户也截然不会乐意看到这些。经过对代码库进行慎重的分析之后,作者采用了 AOP 技术来解决这个问题,最终取得了非常好的效果,达到了将目前代码库所受影响最小化的目标。
阅读全文:使用 AOP 实现应用程序失败转移
评论