一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种轻量级AOP框架实现的方法及存储介质与流程

2022-12-20 01:39:07 来源:中国专利 TAG:

一种轻量级aop框架实现的方法及存储介质
技术领域
1.本发明涉及软件开发及使用技术领域,特别涉及一种轻量级aop框架实现的方法及存储介质。


背景技术:

2.目前常见的自定义aop框架技术,具有以下特点:
3.(1)文件包过大:spring及其它自定义的aop框架技术,大多数基于开源aop类库aspectj,
4.此jar包将近2m,文件包过大,不够轻量级。
5.(2)语法复杂:如果使用aspectj,又不集成spring的话,那就必须使用aspectj提供的java语法扩展,此语法复杂且较难使用。
6.基于上述问题,发明提出了一种轻量级aop框架实现的方法及存储介质。


技术实现要素:

7.本发明为了弥补现有技术的缺陷,提供了一种简单高效的轻量级aop框架实现的方法及存储介质。
8.本发明是通过如下技术方案实现的:
9.一种轻量级aop框架实现的方法,其特征在于:包括以下步骤:
10.步骤s1、自定义proxy接口和proxy chain类,采用责任链模式实现代理类链式执行;
11.步骤s2、通过工厂模式和单例模式自定义proxymanager类;
12.步骤s3、自定义abstractproxy类,采用模板方法模式实现钩子方法;
13.步骤s4、自定义transactionaspect类,通过transactionaspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。
14.所述步骤s1中,责任链模式实现代理类链式执行是指使用责任链设计模式,实现所有代理类通过链式方式逐一执行。
15.所述步骤s1中,使用责任链设计模式,将每个proxy用一根链串联起来,形成一个proxy chain,然后调用这个proxy chain,使其依次调用chain中的每个proxy。
16.所述步骤s2中,通过工厂模式和单例模式创建proxymanager,通过构造器初始化targetclass目标类和proxylist代理列表,并提供createproxy()方法创建代理对象。
17.所述步骤s3中,模板方法模式实现钩子方法是指使用模板方法模式,实现包括但不限于begin()、filter()、before()、after()、error()与end()在内的钩子方法。
18.所述步骤s3中,通过模板方法模式实现abstractproxy抽象类,并实现proxy接口,在接口中定义方法调用模板,在需要横向拦截的地方定义钩子方法,将钩子方法延迟到子类中去实现。
19.所述步骤s3中,框架使用者自定义代理类,根据自身需求自定义选择需要的钩子
并自定义钩子的实现。
20.所述步骤s4中,通过transactionaspect类实现事务控制的切面,即通过filter()钩子方法,过滤出带有transaction注解的目标方法进行事务控制;通过before()钩子方法,在目标方法执行前开启事务;通过after()钩子方法,在目标方法执行后提交事务;通过error()钩子方法,在遇到异常时回滚事务。
21.一种计算机可读存储介质,其特征在于:包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行本发明轻量级aop框架实现的方法。
22.本发明的有益效果是:该轻量级aop框架实现的方法及存储介质,在满足aop框架特性的同时,减轻了框架文件包的大小,从而减轻了框架应用系统文件包的大小,提高了框架应用系统的运行速度及部署的效率。
附图说明
23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.附图1为本发明轻量级aop框架uml类示意图。
具体实施方式
25.为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.该轻量级aop框架实现的方法,包括以下步骤:
27.步骤s1、自定义proxy接口和proxy chain类,采用责任链模式实现代理类链式执行;
28.步骤s2、通过工厂模式和单例模式自定义proxymanager类;
29.步骤s3、自定义abstractproxy类,采用模板方法模式实现钩子方法;
30.步骤s4、自定义transactionaspect类,通过transactionaspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。
31.所述步骤s1中,责任链模式实现代理类链式执行是指使用责任链设计模式,实现所有代理类通过链式方式逐一执行。
32.所述步骤s1中,使用责任链设计模式,将每个proxy用一根链串联起来,形成一个proxy chain,然后调用这个proxy chain,使其依次调用chain中的每个proxy。
33.proxy(代理),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
34.所述步骤s2中,通过工厂模式和单例模式创建proxymanager,通过构造器初始化targetclass目标类和proxylist代理列表,并提供createproxy()方法创建代理对象。
35.所述步骤s3中,模板方法模式实现钩子方法是指使用模板方法模式,实现包括但不限于begin()、filter()、before()、after()、error()与end()在内的钩子方法。
36.所述步骤s3中,通过模板方法模式实现abstractproxy抽象类,并实现proxy接口,在接口中定义方法调用模板,在需要横向拦截的地方定义钩子方法,将钩子方法延迟到子类中去实现。
37.所述步骤s3中,框架使用者自定义代理类,如beforeproxy、afterproxy代理类,根据自身需求自定义选择需要的钩子并自定义钩子的实现。
38.所述步骤s4中,通过transactionaspect类实现事务控制的切面,即通过filter()钩子方法,过滤出带有transaction注解的目标方法进行事务控制;通过before()钩子方法,在目标方法执行前开启事务;通过after()钩子方法,在目标方法执行后提交事务;通过error()钩子方法,在遇到异常时回滚事务。
39.该计算机可读存储介质,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行该轻量级aop框架实现的方法。
40.附图1中展示了轻量级aop框架uml类图设计。从图中可以看出,该轻量级aop框架实现的方法:
41.(1)定义了代理接口proxy,并提供了抽象代理类abstractproxy,其实现了代理接口proxy,通过模板方法模式实现了doproxy()方法,并且提供了begin()、filter()、before()、after()、error()、end()等钩子方法。
42.(2)框架提供了事务控制组件transactionaspect,其继承了abstractproxy抽象类,实现了doproxy()方法,并实现了begin()、filter()、before()、after()、error()、end()等钩子方法,以实现开启事务、提交事务、回滚事务等事务特性。
43.(3)框架使用者可以自定义代理类,如beforeproxy、afterproxy代理类,根据自身需求自定义钩子方法。
44.(4)由代理工厂类proxymanager通过单例模式生成自身实例,并通过工厂模式创建代理链proxychain。
45.与现有技术相比,该轻量级aop框架实现的方法及存储介质,具有以下特点:
46.(1)轻量级aop框架可以根据自身业务的需求,自定义并强化aop的实现流程,使框架在满足aop特性的同时,更能切合项目的业务需求。
47.(2)轻量级aop框架依赖的第三方jar较少,在满足aop框架特性的同时,减轻了框架文件包的大小,从而减轻了框架应用系统文件包的大小,提高了框架应用系统的运行速度及部署的效率。
48.(3)通过注解的方式更易于进行切面编程和事务的控制。
49.以上对本发明实例中的一种轻量级aop框架实现的方法及存储介质进行了详细的介绍。本部分采用具体实例对发明的原理及实施方式进行了阐述,以上实例仅用于帮助理解本发明的核心思想,在不脱离本发明原理的情况下,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献