[发明专利]一种基于组件式的轻量AOP框架及其使用方法在审
| 申请号: | 201710300808.5 | 申请日: | 2017-05-02 |
| 公开(公告)号: | CN107133171A | 公开(公告)日: | 2017-09-05 |
| 发明(设计)人: | 任雪冰;吕慧明 | 申请(专利权)人: | 山东浪潮通软信息科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 孟峣 |
| 地址: | 250100 山东省*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 组件 aop 框架 及其 使用方法 | ||
技术领域
本发明涉及计算机技术领域,具体地说是一种基于组件式的轻量AOP框架及其使用方法。
背景技术
近年来,企业业务越来越复杂,随着企业信息化的不断发展,各业务应用集成越来越紧密,软件系统内部核心业务代码和非业务的代码(如锁处理、审计处理、异常日志、事物处理等)往往掺杂在一起,这样不仅给维护工作带来了很多麻烦,而且也不利于这些非业务的公共组件的重复使用,亟需发明一种新的机制来应对。
现有技术中,OOP可以解决部分问题,但是OOP定义的是从上到下的关系,但并不适合定义从左到右的关系。例如日志功能,志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。对于其他类型的代码,如安全性、异常处理也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。
基于此,本专利基于组件式的动态代理轻量AOP框架实现方式, AOP就是将这些非核心业务的公共层面抽取出来,在需要的时候切入到代码中完成任务。从而降低了业务核心代码和非业务核心代码的耦合度,有效解决健壮性低的缺点。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于组件式的轻量AOP框架及其使用方法。
一种基于组件式的轻量AOP框架,置于客户端与服务端之间,该AOP框架包括拦截接口、拦截对象处理类和拦截对象列表,其中,
拦截接口用于接收请求并完成拦截动作;
拦截对象处理类用于传递拦截意图并返回相应结果;
拦截对象列表则保存若干拦截对象。
所述拦截接口用于接收客户端请求,触发生成拦截对象处理类;
拦截对象处理类用于将将拦截意图传递给拦截对象、调用拦截对象队列里的所有拦截对象、调用服务端服务;
拦截对象列表则通过解析拦截意图,判断是否处理其中的拦截对象。
当客户端向服务端发出拦截请求时,服务端调用拦截对象处理类,依次将拦截意图传递给拦截对象列表里的每个拦截对象,拦截对象通过匹配拦截意图来决定是否执行拦截任务,当确定执行时,则由拦截接口完成拦截。
所述拦截接口进行调用实现拦截时,通过反射的方式统一调用,统一调用接口是通过获取解析服务和拦截参数,来判断框架的拦截动作是否触发。
一种基于组件式的轻量AOP框架使用方法,其实现过程为,
配置一AOP框架,置于客户端与服务端之间,该AOP框架包括拦截接口、拦截对象处理类和拦截对象列表,其中,拦截接口用于接收客户端请求,触发生成拦截对象处理类;拦截对象处理类用于将将拦截意图传递给拦截对象、调用拦截对象队列里的所有拦截对象、调用服务端服务;拦截对象列表则包括若干拦截对象;
客户端向服务端发出拦截请求;
服务端调用拦截对象处理类,依次将拦截意图传递给拦截对象列表里的每个拦截对象,拦截对象通过匹配拦截意图来决定是否执行拦截任务,当确定执行时,则由拦截接口完成拦截。
所述拦截对象由服务器端定义一个配置文件来配置实现,该配置文件为脚本文件,配置文件在运行时将所有的拦截对象进行注册。
所述服务器端设置有基于组件的配置文件,进行拦截时把拦截对象在配置文件中进行配置,框架运行后时识别配置文件中的拦截对象,并将拦截对象注册到系统内,该系统是指客户端、服务端和AOP框架统一使用的系统;当客户端调用服务端时,在传递给服务端的参数中抛出一个拦截意图,拦截对象在顺序调用时自动识别并将拦截意图进行拦截,从而完成拦截任务。
所述配置文件中包括拦截对象的程序集assembly、class类以及需要拦截的位置,该位置是指前拦截或后拦截。
所述拦截接口进行调用实现拦截时,通过反射的方式统一调用,统一调用接口是通过获取解析服务和拦截参数,来判断框架的拦截动作是否触发。
所述拦截对象提供XML可配置的方式来设置。
本发明的一种基于组件式的轻量AOP框架及其使用方法和现有技术相比,具有以下有益效果:
本发明的一种基于组件式的轻量AOP框架及其使用方法,通过在运行时给调用的方法提供一个动态的代理,用于捕获该方法需要拦截的动作来达到干预方法执行的目的,从而将业务核心代码和非业务公共代码剥离,降低耦合度,增加复用性;而且支持框架运行时注册拦截对象的方式,拦截对象可在服务器端通过XML文件进行配置,拦截对象发生变动时,只需要修改配置文件,并不影响业务核心代码,实用性强,适用范围广泛,具有很好的推广应用价值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮通软信息科技有限公司,未经山东浪潮通软信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710300808.5/2.html,转载请声明来源钻瓜专利网。





