CN102508702A - 一种基于aop技术进行拦截来处理业务通用逻辑的方法 - Google Patents
一种基于aop技术进行拦截来处理业务通用逻辑的方法 Download PDFInfo
- Publication number
- CN102508702A CN102508702A CN2011103219214A CN201110321921A CN102508702A CN 102508702 A CN102508702 A CN 102508702A CN 2011103219214 A CN2011103219214 A CN 2011103219214A CN 201110321921 A CN201110321921 A CN 201110321921A CN 102508702 A CN102508702 A CN 102508702A
- Authority
- CN
- China
- Prior art keywords
- aop
- processing
- tackling
- technology
- business
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于AOP技术进行拦截来处理业务通用逻辑的方法。包括步骤:在业务处理方法上设置AOP中提供的属性,并将属性进行新创建或共享标记,在对客户端执行的业务处理进行拦截后分析业务处理方法的属性标记,当事务标识为新创建时,创建事务环境,当事务标识为共享时,直接获取当前事务环境,并将当前事务环境都保存进堆栈,然后所述业务处理方法进行处理,记录处理方法到日志中,若处理过程中出现的结果与要求偏离时,将出现的异常现象记录到日志中;将系统无法处理的事务环境移除,并将异常信息记录到日志中;最后将业务处理结果返回到客户端,移除当前事务环境,记录调用日志。本发明具备极大的灵活性,充分满足各种开发需求。
Description
技术领域
本发明涉及软件开发领域,特别涉及应用于软件开发中的截获方法等功能的领域。
背景技术
面向方法编程(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 (8)
1.一种基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,包括以下步骤:
步骤一、在业务处理方法上设置AOP中提供的属性,并将属性进行标记,标记为新创建或共享;
步骤二、对客户端执行的业务处理进行拦截,分析业务处理方法的属性标记,当属性标记为新创建时,创建该新创建的业务处理方法的事务环境,并将当前创建的事务环境保存进堆栈;当属性标记为共享时,直接获取该新共享的业务处理方法的事务环境,并保存进堆栈;
步骤三、处理所述业务处理方法,将业务处理方法的处理过程记录到日志中,若处理过程中出现的结果与预先设定的结果偏离时,将出现的异常现象记录到日志中;
步骤四、当系统无法对业务处理方法进行处理时,将当前事务环境从堆栈中移除,并将异常信息记录到日志中;
步骤五、将业务处理结果返回到客户端,从堆栈中移除当前事务环境,记录调用日志。
2.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,同时使用本地方法和WCF方法进行拦截。
3.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,所述AOP内置组件包括截获器和方面处理器。
4.如权利要求3所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,所述方面处理器包含事务处理器、日志处理器和异常处理器。
5.如权利要求3所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,AOP组件给本地方法和WCF方法提供相同的配置。
6.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,在本地方法和WCF方法上添加AOP属性。
7.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,使用WCF拦截之前需要启动WCF服务。
8.如权利要求1所述的基于AOP技术进行拦截来处理业务通用逻辑的方法,其特征在于,步骤三中的偏离是根据软件开发人员自定义的要求进行比较。
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 true CN102508702A (zh) | 2012-06-20 |
CN102508702B 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) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559118A (zh) * | 2013-10-12 | 2014-02-05 | 福建亿榕信息技术有限公司 | 一种基于aop与注解信息系统的安全审计方法 |
CN104216912A (zh) * | 2013-06-04 | 2014-12-17 | 广州中国科学院软件应用技术研究所 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
CN104731650A (zh) * | 2013-12-18 | 2015-06-24 | 青岛海尔空调器有限总公司 | 系统接口调用信息的获取方法和装置 |
CN105893016A (zh) * | 2015-12-11 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 基于mvc架构的日志记录系统及方法 |
CN106681760A (zh) * | 2016-12-12 | 2017-05-17 | 国网北京市电力公司 | 基于客户工程项目管理系统的事务处理方法和装置 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN106844156A (zh) * | 2017-01-24 | 2017-06-13 | 武汉虹信技术服务有限责任公司 | 智能建筑综合管理平台系统中wcf通信消息拦截方法 |
CN107168757A (zh) * | 2017-03-31 | 2017-09-15 | 武汉斗鱼网络科技有限公司 | 一种Android端防止View控件点击抖动的方法及装置 |
CN113672205A (zh) * | 2021-08-25 | 2021-11-19 | 广州方舟信息科技有限公司 | 一种基于业务事件驱动的工作流框架 |
Citations (4)
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 |
JP2004288023A (ja) * | 2003-03-24 | 2004-10-14 | Fuji Xerox Co Ltd | 連携処理装置及びプログラム |
CN101276271A (zh) * | 2007-03-29 | 2008-10-01 | 北京邮电大学 | 一种面向切面编程的拦截器系统及方法 |
US20080289012A1 (en) * | 2006-10-10 | 2008-11-20 | Huawei Technologies Co., Ltd. | System and method for creating, executing, and mapping service |
-
2011
- 2011-10-20 CN CN 201110321921 patent/CN102508702B/zh active Active
Patent Citations (4)
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 |
JP2004288023A (ja) * | 2003-03-24 | 2004-10-14 | Fuji Xerox Co Ltd | 連携処理装置及びプログラム |
US20080289012A1 (en) * | 2006-10-10 | 2008-11-20 | Huawei Technologies Co., Ltd. | System and method for creating, executing, and mapping service |
CN101276271A (zh) * | 2007-03-29 | 2008-10-01 | 北京邮电大学 | 一种面向切面编程的拦截器系统及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104216912A (zh) * | 2013-06-04 | 2014-12-17 | 广州中国科学院软件应用技术研究所 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
CN104216912B (zh) * | 2013-06-04 | 2017-10-27 | 广州中国科学院软件应用技术研究所 | 一种无侵入式的业务表单工作流化的实现方法与装置 |
CN103559118A (zh) * | 2013-10-12 | 2014-02-05 | 福建亿榕信息技术有限公司 | 一种基于aop与注解信息系统的安全审计方法 |
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架构的日志记录系统及方法 |
CN106777026A (zh) * | 2016-12-08 | 2017-05-31 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN106777026B (zh) * | 2016-12-08 | 2019-12-20 | 用友网络科技股份有限公司 | 支持微服务架构事务最终一致性的方法、装置及系统 |
CN106681760A (zh) * | 2016-12-12 | 2017-05-17 | 国网北京市电力公司 | 基于客户工程项目管理系统的事务处理方法和装置 |
CN106844156A (zh) * | 2017-01-24 | 2017-06-13 | 武汉虹信技术服务有限责任公司 | 智能建筑综合管理平台系统中wcf通信消息拦截方法 |
CN107168757A (zh) * | 2017-03-31 | 2017-09-15 | 武汉斗鱼网络科技有限公司 | 一种Android端防止View控件点击抖动的方法及装置 |
CN113672205A (zh) * | 2021-08-25 | 2021-11-19 | 广州方舟信息科技有限公司 | 一种基于业务事件驱动的工作流框架 |
Also Published As
Publication number | Publication date |
---|---|
CN102508702B (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102508702B (zh) | 一种基于aop技术进行拦截来处理业务通用逻辑的方法 | |
CN102456185B (zh) | 一种分布式工作流处理方法及分布式工作流引擎系统 | |
US11159385B2 (en) | Topology based management of second day operations | |
AU718427B2 (en) | Method and apparatus for handling processing errors in telecommunications exchanges | |
US20170302531A1 (en) | Topology based management with compliance policies | |
WO2020228063A1 (zh) | 一种开发业务功能的方法和装置 | |
US20090204947A1 (en) | Method and system for correlating trace data | |
CN104182288A (zh) | 一种服务器集群系统功耗自动化测试的方法 | |
US9442822B2 (en) | Providing a visual representation of a sub-set of a visual program | |
CN106331065A (zh) | 一种用于具有服务容器的主机系统的代理应用以及系统 | |
CN102467411A (zh) | 一种工作流处理及工作流代理方法、装置和系统 | |
CN107247648B (zh) | 基于Docker实现远程项目系统监管的方法、装置及系统 | |
CN110287053B (zh) | 分布式系统异常统一处理的方法 | |
CN105187241A (zh) | 一种基于linux内核的日志记录方法及系统 | |
CN102810184A (zh) | 一种动态执行工作流的方法、装置及企业系统 | |
CN104462943A (zh) | 业务系统中非侵入式性能监控装置和方法 | |
CN116015819A (zh) | 一种基于soar的攻击行为响应方法、装置及处理设备 | |
CN114579194B (zh) | 一种基于Spring远程调用的异常处理方法和系统 | |
CN103092866A (zh) | 数据监控方法及监控装置 | |
CN110519224B (zh) | 一种虚拟化环境中智能生成网络防护策略的方法和设备 | |
CN117472321B (zh) | 音频处理方法、装置、存储介质及电子设备 | |
CN102169447A (zh) | 一种自定义外壳程序的注册、注销方法及相应的系统 | |
CN109802842A (zh) | 应用拓扑的生成方法及相关设备 | |
WO2021244088A1 (zh) | 程序控制方法、装置、计算机设备及存储介质 | |
CN102591714B (zh) | 一种流程调用方法、系统及应用服务器 |
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 |