一种基于AOP技术进行拦截来处理业务通用逻辑的方法技术

技术编号:7449873 阅读:379 留言:0更新日期:2012-06-21 21:59
本发明专利技术公开了一种基于AOP技术进行拦截来处理业务通用逻辑的方法。包括步骤:在业务处理方法上设置AOP中提供的属性,并将属性进行新创建或共享标记,在对客户端执行的业务处理进行拦截后分析业务处理方法的属性标记,当事务标识为新创建时,创建事务环境,当事务标识为共享时,直接获取当前事务环境,并将当前事务环境都保存进堆栈,然后所述业务处理方法进行处理,记录处理方法到日志中,若处理过程中出现的结果与要求偏离时,将出现的异常现象记录到日志中;将系统无法处理的事务环境移除,并将异常信息记录到日志中;最后将业务处理结果返回到客户端,移除当前事务环境,记录调用日志。本发明专利技术具备极大的灵活性,充分满足各种开发需求。

【技术实现步骤摘要】

本专利技术涉及软件开发领域,特别涉及应用于软件开发中的截获方法等功能的领域。
技术介绍
面向方法编程(AOP),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。 利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。系统开发过程中,存在一些与业务无关,却为业务模块所共同调用的逻辑或责任, 例如事务处理、日志管理、权限控制等。AOP能利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的行为封装到一个可重用模块,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
技术实现思路
本专利技术的目的在于提供一套有效的方法来使AOP截获更加的高效和简洁,通过在配置文件中配置AOP使得本专利技术较其他同类专利技术更加的灵活,而且提供其他专利技术所不具备的WCF (Windows通讯基础)拦截。本专利技术的又一目的是为了可以动态配置处理器,可以动态配置过滤拦截对象,可以动态配置处理器的顺序。具备极大的灵活性,充分满足各种开发需求。为此,本专利技术公开了一种基于AOP技术进行拦截来处理业务通用逻辑的方法。所述基于AOP技术进行拦截来处理业务通用逻辑的方法步骤如下步骤一、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;步骤二、对客户端执行的业务处理进行拦截,分析业务处理方法的属性标记,当事务标识为新创建时,创建事务环境,并将当前创建的事务环境保存进堆栈;当事务标识为共享时,直接获取当前事务环境,并保存进堆栈;步骤三、处理所述业务处理方法,将业务处理方法记录到日志中,若处理过程中出现的结果与要求偏离时,将出现的异常现象记录到日志中;步骤四、当系统无法对业务处理方法进行处理时,将当前事务环境从堆栈中移除, 并将异常信息记录到日志中;步骤五、将业务处理结果返回到客户端,从堆栈中移除当前事务环境,记录调用日O优选的是,所述的基于AOP技术进行拦截来处理业务通用逻辑的方法中,同时使用本地方法和WCF方法进行拦截。优选的是,所述的基于AOP技术进行拦截来处理业务通用逻辑的方法中,所述AOP 内置组件包括截获器和方面处理器。优选的是,所述的基于AOP技术进行拦截来处理业务通用逻辑的方法中,所述方面处理器包含事务处理器、日志处理器、异常处理器和开发人员自定义的方面处理器。优选的是,所述的基于AOP技术进行拦截来处理业务通用逻辑的方法中,AOP组件给本地方法和WCF方法提供相同的配置。优选的是,所述的基于AOP技术进行拦截来处理业务通用逻辑的方法中,在本地方法和WCF方法上添加AOP属性。优选的是,所述的基于AOP思想实现WCF拦截和本地拦截的技术设计与实现方案中,使用WCF拦截之前需要启动WCF服务。优选的是,所述的基于AOP思想实现WCF拦截和本地拦截的技术设计与实现方案中,步骤三中的偏离是根据软件开发人员自定义的要求进行比较。本专利技术的有益效果是通过本专利技术方法可以动态配置处理器,可以动态配置过滤拦截对象,可以动态配置处理器的顺序。具备极大的灵活性,充分满足各种开发需求。附图说明附图1为该专利技术一种基于AOP技术进行拦截来处理业务通用逻辑的方法的流程图。具体实施例方式下面结合附图对本专利技术做进一步说明,以使本领域普通技术人员参照本说明书后能够据以实施。如图1所示,本专利技术的一种基于AOP技术进行拦截来处理业务通用逻辑的方法,包括如下步骤步骤一、在正常方法和WCF方法中,配置AOP截获器和方面处理器,截获器包括本地截获处理器和WCF截获处理器,方面处理器包括事务处理器、日志处理器、异常处理器以及开发人员自定义的方面处理器;步骤二、在本地方法和WCF方法上添加AOP属性,启动WCF服务;步骤三、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;步骤四、本地方法和WCF方法中的拦截器同时对客户端执行的业务处理进行拦截,通过事务处理器分析业务处理方法的属性标记,当事务标识为新创建时,创建事务环境,并将当前创建的事务环境保存进堆栈;当事务标识为共享时,直接获取当前事务环境, 并保存进堆栈;步骤五、处理所述业务处理方法,将业务处理方法记录到日志中,若处理过程中, 检测到出现的结果与开发人员定义的要求相偏离时,将出现的异常现象记录到日志中;步骤六、当系统无法对业务处理方法进行处理时,将当前事务环境从堆栈中移除, 将异常信息记录到日志中;步骤七、将业务处理结果返回到客户端,从堆栈中移除当前事务环境,记录调用日志。另一种实现形式是步骤一、在配置文件节点下增加AOP截获器和方面处理器的配置扩展,截获器和方面处理器节点配置方式为AOP组件内置;步骤二、配置AOP截获器,AOP组件针对两种部署方式(本地部署,WCF部署)各提供一个默认实现;步骤三、配置AOP方面处理器,在配置文件中配置事务处理器、日志处理器、异常处理器以及开发人员自定义的方面处理器;步骤四、配置WCF截获切面处理,WCF截获切面处理在操作契约的实现类上对操作实现方法增加相关配置;步骤五、配置本地的截获切面处理,在操作方法上面增加正对本地方法的配置;步骤六、事物截获处理器,WCF事务分布式传播需要在配置文件中,开启绑定协议中的事务流传播选项;步骤七、在操作契约的实现方法上增加事务流选项属性和事务范围属性;步骤八、配置日志截获处理器;步骤九、配置异常截获处理器;步骤十、启动WCF服务;步骤十一、截获BP方法,分析BP方法属性标记,事务标识为新创建,则跳到步骤十二,标识为共享,跳转至步骤十三;步骤十二、创建事务环境,当前创建的事务进堆栈,跳转至步骤十四;步骤十三、获取当前事务的上下文环境。跳转至步骤十四。步骤十四、处理BP方法调用,记录BP方法的日志,处理异常,跳转至步骤十五,BP 调用方法发生异常,跳转至步骤十六;步骤十五、处理异常信息,记录日志。跳转至步骤十七,AOP系统处理业务BP方法调用的上下文信息。步骤十六、BP方法调用发生异常,移除当前事务上下文,抛出异常信息,记录日志, AOP异常方面处理自动处理业务BP方法内部的异常,异常方面处理器运行需要依赖平台异常处理组件;步骤十七、提交事务上下文,移除当前事务上下文,记录调用日志。尽管本专利技术的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本专利技术的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本专利技术并不限于特定的细节和这里示出与描述的图例。权利要求1.一种基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,包括以下步骤步骤一、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;步骤二、对客户端执行的业务处理进行拦截,分析业务处理方法的属性标记,当属性标记为新创建时,创建该新创建的业务处理方法的事务环境,并将当前创建的事务环境保存进堆栈;当属性标记为共享时,直接获取该新共享的业务处理方法的事务环本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:杨爱民周松柏
申请(专利权)人:北京金和软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术