`
raymond2006k
  • 浏览: 295541 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AOP原理及在架构设计中的应用(三)

    博客分类:
  • AOP
阅读更多

AOP原理及在架构设计中的应用(三)

 

摘要】 面向方面的编程(AOP)技术已在Java领域产生多年,它为传统的编程模式带来了一种新的思维和方式。AOP本身为程序结构带来的灵活性,在JavaEE架构设计上也能发挥极大的作用。本文对AOP原理,Spring AOP基本编码方式进行了简明,清晰的介绍,还对公司项目实践中AOP的基本应用模式进行了归纳,整理, 有更贴近实践的指导意义。

 

关键词AOP  JavaEE 架构设计

 

 

2.2.    AOP 应用举例

2.2.1. 基本功能

1.       业务日志(工单)

       凡是基于数据库的系统,本质上都是对库表记录的增删改查。而从业务层面看,很多时候,用户需要对数据的操作留下痕迹,即业务日志,以便审计。

       在公司项目的J2EE架构中设计了业务日志拦截器,并切入对BO的操作,完成对业务操作的记录。用户可以通过专门的界面对业务日志进行查询和分析。

       工作原理

       业务日志的基本数据格式为:

        操作时间,来源IP,操作工号,操作状态,操作动作,操作类型,失败原因,数据

       日志按操作类型分:增加,删除,修改(查询暂不记录), 操作成功,失败时都要记录。记录业务日志的主要依据是被拦截的对象和方法信息,。在执行方法本体后,即业务方法成功执行后,记录成功日志;在方法本体抛出异常时,记录失败日志。主要代码见下:

public class BusinessLogAdvisor extends AbstractAdvisor  {

 

public Object invoke(MethodInvocation invocation) throws Throwable {

    //准备参数

    Object result = null;     

    Object object = invocation.getThis(); //被拦截的对象

    Method method = invocation.getMethod(); //被拦截的方法

    Object[] args = invocation.getArguments(); // 参数 

    //before, 之前必要的检查

    ……

    try {

        result = invocation.proceed();

        //以下执行记录日志的操作

        doLog(object, method, args, target, BusinessLog.STATE_SUCCESS,null);

    }catch(Exception e) {

        //以下记录失败日志

        doLog(object, method, args, target, BusinessLog.STATE_FAIL,failcause);

    }

}

 

      

其中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

分享到:
评论

相关推荐

    Spring技术内幕:深入解析Spring架构与设计原理[汇编].pdf

    Spring是Java企业应用开发的主要框架之一,其架构和设计原理对Java开发者具有重要影响。本文将深入解析Spring架构和设计原理,对Spring的核心概念、架构设计和关键技术点进行详细介绍。 1. Spring架构设计原理 ...

    Spring技术内幕:深入解析Spring架构与设计原理.pdf

    Spring技术内幕:深入解析Spring架构与设计原理 Spring技术内幕 Spring是一个基于Java的开源框架,旨在简化Java企业应用的开发。...其设计原理和架构使其能够提供高可靠、可扩展和可维护的应用平台。

    三层架构设计模式MVC和AOP面向切面编程-SSM框架的学习与应用-Java EE企业级应用开发学习记录(第九天)

    本资源将深入探讨软件开发中两个关键的设计和编程概念:三层架构设计模式(MVC)和面向切面编程(AOP)。这两个概念是现代软件开发中不可或缺的组成部分,它们有助于提高代码的可维护性、可扩展性和可重用性。通过...

    Spring技术内幕:深入解析Spring架构与设计原理

    《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和...第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。

    ThreadLocal原理及在多层架构中的应用.pdf

    ThreadLocal是一种在多线程环境下为每一个线程提供各自变量副本的机制,以确保线程安全。在Java中,ThreadLocal被广泛应用于Web...因此,作为架构师,掌握ThreadLocal的工作原理及其在多层架构中的应用是非常必要的。

    Spring技术内幕:深入解析 Spring架构与设计原理.pdf

    第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。 无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版)+.pdf

    综上所述,“Spring技术内幕:深入解析Spring架构与设计原理(第2版)”这本书应该会详细地介绍Spring框架的各个组成部分、工作原理以及如何在实际项目中应用这些知识。对于希望深入了解Spring框架的开发者来说,这将...

    Spring技术内幕:深入解析Spring架构与设计原理(第2版) .pdf

    《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》这本书主要聚焦于Spring框架的核心架构和技术细节,帮助读者全面理解Spring的工作机制、设计理念以及实现方式。下面将根据书名及其描述来展开相关知识点。 ...

    Spring技术内幕:深入解析Spring架构与设计原理(第1部分)

     如果你以一种淡定的心态翻开这本书,无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从《Spring技术内幕:深入解析Spring架构与设计原理》中受益。...

    MVC三层架构最简单应用

    MVC(Model-View-Controller)是一种广泛应用于Web应用程序开发的设计模式,它将应用程序的逻辑分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这种架构模式有助于实现代码的解耦,提高可...

    spring技术内幕第2版深入解析spring架构与设计原理

    在深入解析Spring技术内幕第2版中,会详细探讨Spring框架的核心架构与设计原理,Spring作为一个轻量级的Java平台,提供了全面的编程和配置模型,是企业级Java应用程序开发中广泛使用的技术之一。 Spring的核心特性...

    Spring技术内幕 - 深入解析Spring架构与设计原理.rar

    在本文中,我们将探讨Spring的核心组件——IOC(Inversion of Control)和AOP(Aspect-Oriented Programming)以及它们在Spring中的应用。 首先,我们来了解什么是IOC。IOC,即控制反转,是Spring框架的核心特性之...

    简易的AOP框架

    在Java中,Spring框架是最著名的AOP实现之一,但这里我们讨论的是一个简易的AOP框架,它可以帮助理解AOP的基本概念和工作原理。 该简易AOP框架包含以下几个关键组件: 1. **配置文件**:这是定义切面(aspect)和...

    深入解析Spring架构与设计原理

    第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。无论你是Java程序员、Spring开发者,还是平台开发人员、系统架构师,抑或是对开源软件源代码着迷的代码狂人,都能从本书中...

    2023系统架构师历年论文真题解析及精选范文实战汇编

    《2023系统架构师历年论文真题解析及精选范文实战汇编》是一本针对系统架构领域的专业参考资料,旨在帮助读者深入理解并掌握系统架构的设计原则、技术和应用。本书涵盖了2021年和2020年的部分论文主题,涉及到面向...

    spring切面AOP所使用的jar包

    Spring框架的AOP(面向切面编程)是其核心特性之一,它允许开发者在不修改原有代码的情况下,通过切面来插入额外的功能,比如...在实际开发中,理解并掌握AOP原理和应用,对于提升软件设计的灵活性和可扩展性至关重要。

    spring技术内幕-深入解析spring架构与设计原理

    《Spring技术内幕——深入解析Spring架构与设计原理》是一本深度剖析Spring框架核心机制与设计理念的专业书籍。本书旨在帮助读者全面理解Spring的内部工作原理,从而更好地应用和优化Spring框架在实际开发中的使用。...

Global site tag (gtag.js) - Google Analytics