CN102508702B - 一种基于aop技术进行拦截来处理业务通用逻辑的方法 - Google Patents

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

Info

Publication number
CN102508702B
CN102508702B CN 201110321921 CN201110321921A CN102508702B CN 102508702 B CN102508702 B CN 102508702B CN 201110321921 CN201110321921 CN 201110321921 CN 201110321921 A CN201110321921 A CN 201110321921A CN 102508702 B CN102508702 B CN 102508702B
Authority
CN
China
Prior art keywords
aop
business
processing
attribute
technology
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN 201110321921
Other languages
English (en)
Other versions
CN102508702A (zh
Inventor
杨爱民
周松柏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jinher Software Co Ltd
Original Assignee
Beijing Jinher Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Jinher Software Co Ltd filed Critical Beijing Jinher Software Co Ltd
Priority to CN 201110321921 priority Critical patent/CN102508702B/zh
Publication of CN102508702A publication Critical patent/CN102508702A/zh
Application granted granted Critical
Publication of CN102508702B publication Critical patent/CN102508702B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种基于AOP技术进行拦截来处理业务通用逻辑的方法
技术领域
本发明涉及软件开发领域,特别涉及应用于软件开发中的截获方法等功能的领域。
背景技术
面向方法编程(AOP),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
系统开发过程中,存在一些与业务无关,却为业务模块所共同调用的逻辑或责任,例如事务处理、日志管理、权限控制等。AOP能利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的行为封装到一个可重用模块,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。
发明内容
本发明的目的在于提供一套有效的方法来使AOP截获更加的高效和简洁,通过在配置文件中配置AOP使得本发明较其他同类发明更加的灵活,而且提供其他发明所不具备的WCF(Windows通讯基础)拦截。
本发明的又一目的是为了可以动态配置处理器,可以动态配置过滤拦截对象,可以动态配置处理器的顺序。具备极大的灵活性,充分满足各种开发需求。
为此,本发明公开了一种基于AOP技术进行拦截来处理业务通用逻辑的方法。所述基于AOP技术进行拦截来处理业务通用逻辑的方法步骤如下:
步骤一、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;
步骤二、对客户端执行的业务处理进行拦截,分析业务处理方法的属性标记,当事务标识为新创建时,创建事务环境,并将当前创建的事务环境保存进堆栈;当事务标识为共享时,直接获取当前事务环境,并保存进堆栈;
步骤三、处理所述业务处理方法,将业务处理方法记录到日志中,若处理过程中出现的结果与要求偏离时,将出现的异常现象记录到日志中;
步骤四、当系统无法对业务处理方法进行处理时,将当前事务环境从堆栈中移除,并将异常信息记录到日志中;
步骤五、将业务处理结果返回到客户端,从堆栈中移除当前事务环境,记录调用日志。
优选的是,所述的基于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方法内部的异常,异常方面处理器运行需要依赖平台异常处理组件;
步骤十七、提交事务上下文,移除当前事务上下文,记录调用日志。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (6)

1.一种基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,包括以下步骤:
步骤一、在本地方法和WCF方法中配置AOP内置组件,添加AOP属性;
步骤二、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;
步骤三、对客户端执行的业务处理进行拦截,分析业务处理方法的属性标记,当属性标记为新创建时,创建该新创建的业务处理方法的事务环境,并将当前创建的事务环境保存进堆栈;当属性标记为共享时,直接获取该共享的业务处理万法的事务环境,并保存进堆栈;
步骤四、处理所述业务处理方法,将业务处理方法的处理过程记录到日志中,若处理过程中出现的结果与预先设定的结果偏离时,将出现的异常现象记录到日志中;
步骤五、当系统无法对业务处理方法进行处理时,将当前事务环境从堆栈中移除,并将异常信息记录到日志中;
步骤六、将业务处理结果返回到客户端,从堆栈中移除当前事务环境,记录调用日志。
2.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,所述AOP内置组件包括截获器和方面处理器。
3.如权利要求2所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,所述方面处理器包含事务处理器、日志处理器和异常处理器。
4.如权利要求2所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,AOP内置组件给本地方法和WCF方法提供相同的配置。
5.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,在使用WCF方法拦截之前需要启动WCF服务。
6.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,步骤四中的偏离是根据软件开发人员自定义的要求进行比较。
CN 201110321921 2011-10-20 2011-10-20 一种基于aop技术进行拦截来处理业务通用逻辑的方法 Active CN102508702B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110321921 CN102508702B (zh) 2011-10-20 2011-10-20 一种基于aop技术进行拦截来处理业务通用逻辑的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110321921 CN102508702B (zh) 2011-10-20 2011-10-20 一种基于aop技术进行拦截来处理业务通用逻辑的方法

Publications (2)

Publication Number Publication Date
CN102508702A CN102508702A (zh) 2012-06-20
CN102508702B true CN102508702B (zh) 2013-07-10

Family

ID=46220794

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110321921 Active CN102508702B (zh) 2011-10-20 2011-10-20 一种基于aop技术进行拦截来处理业务通用逻辑的方法

Country Status (1)

Country Link
CN (1) CN102508702B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216912B (zh) * 2013-06-04 2017-10-27 广州中国科学院软件应用技术研究所 一种无侵入式的业务表单工作流化的实现方法与装置
CN103559118B (zh) * 2013-10-12 2016-02-03 福建亿榕信息技术有限公司 一种基于aop与注解信息系统的安全审计方法
CN104731650A (zh) * 2013-12-18 2015-06-24 青岛海尔空调器有限总公司 系统接口调用信息的获取方法和装置
CN105893016A (zh) * 2015-12-11 2016-08-24 乐视网信息技术(北京)股份有限公司 基于mvc架构的日志记录系统及方法
CN106777026B (zh) * 2016-12-08 2019-12-20 用友网络科技股份有限公司 支持微服务架构事务最终一致性的方法、装置及系统
CN106681760A (zh) * 2016-12-12 2017-05-17 国网北京市电力公司 基于客户工程项目管理系统的事务处理方法和装置
CN106844156B (zh) * 2017-01-24 2020-08-07 武汉虹信技术服务有限责任公司 智能建筑综合管理平台系统中wcf通信消息拦截方法
CN107168757A (zh) * 2017-03-31 2017-09-15 武汉斗鱼网络科技有限公司 一种Android端防止View控件点击抖动的方法及装置
CN113672205B (zh) * 2021-08-25 2022-06-03 广州方舟信息科技有限公司 一种基于业务事件驱动的工作流框架

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694506B1 (en) * 1997-10-16 2004-02-17 International Business Machines Corporation Object oriented programming system with objects for dynamically connecting functioning programming objects with objects for general purpose operations
JP4120436B2 (ja) * 2003-03-24 2008-07-16 富士ゼロックス株式会社 連携処理装置及びプログラム
CN100536479C (zh) * 2006-10-10 2009-09-02 华为技术有限公司 业务创建系统及方法
CN101276271A (zh) * 2007-03-29 2008-10-01 北京邮电大学 一种面向切面编程的拦截器系统及方法

Also Published As

Publication number Publication date
CN102508702A (zh) 2012-06-20

Similar Documents

Publication Publication Date Title
CN102508702B (zh) 一种基于aop技术进行拦截来处理业务通用逻辑的方法
US7593980B2 (en) Application server system and method
AU718427B2 (en) Method and apparatus for handling processing errors in telecommunications exchanges
US20060262915A1 (en) Proxy for application server
US20090204947A1 (en) Method and system for correlating trace data
WO2020228063A1 (zh) 一种开发业务功能的方法和装置
CN102866925B (zh) 一种中间件与用户界面的通信方法和系统
CN104636435A (zh) 云终端录屏方法
CN102467411A (zh) 一种工作流处理及工作流代理方法、装置和系统
CN114741060B (zh) 基于中台的业务系统开发方法及装置
CN106331065A (zh) 一种用于具有服务容器的主机系统的代理应用以及系统
CN110287053B (zh) 分布式系统异常统一处理的方法
CN104462943A (zh) 业务系统中非侵入式性能监控装置和方法
CN105933497B (zh) 一种多模式的来电拦截方法与装置
CN114579194B (zh) 一种基于Spring远程调用的异常处理方法和系统
CN103092866A (zh) 数据监控方法及监控装置
CN116015819A (zh) 一种基于soar的攻击行为响应方法、装置及处理设备
CN107632885A (zh) 组件间的回调管理方法和装置
CN110519224B (zh) 一种虚拟化环境中智能生成网络防护策略的方法和设备
CN109784054B (zh) 行为堆栈信息获取方法及装置
CN117472321A (zh) 音频处理方法、装置、存储介质及电子设备
CN102591714B (zh) 一种流程调用方法、系统及应用服务器
CN102737198B (zh) 对象保护方法及装置
CN104836831A (zh) 一种用于物联网的物体服务方法
US8453113B2 (en) Configuration tool and system for an intelligent electronic device

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant