一种轻量级AOP框架实现的方法及存储介质技术

技术编号:35988224 阅读:19 留言:0更新日期:2022-12-17 23:02
本发明专利技术特别涉及一种轻量级AOP框架实现的方法及存储介质。该轻量级AOP框架实现的方法及存储介质,自定义Proxy接口和Proxy Chain类,采用责任链模式实现代理类链式执行;通过工厂模式和单例模式自定义ProxyManager类;自定义AbstractProxy类,采用模板方法模式实现钩子方法;自定义TransactionAspect类,通过TransactionAspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。该轻量级AOP框架实现的方法及存储介质,在满足AOP框架特性的同时,减轻了框架文件包的大小,从而减轻了框架应用系统文件包的大小,提高了框架应用系统的运行速度及部署的效率。系统的运行速度及部署的效率。系统的运行速度及部署的效率。

【技术实现步骤摘要】
一种轻量级AOP框架实现的方法及存储介质


[0001]本专利技术涉及软件开发及使用
,特别涉及一种轻量级AOP框架实现的方法及存储介质。

技术介绍

[0002]目前常见的自定义AOP框架技术,具有以下特点:
[0003](1)文件包过大:Spring及其它自定义的AOP框架技术,大多数基于开源AOP类库AspectJ,
[0004]此jar包将近2M,文件包过大,不够轻量级。
[0005](2)语法复杂:如果使用AspectJ,又不集成Spring的话,那就必须使用AspectJ提供的Java语法扩展,此语法复杂且较难使用。
[0006]基于上述问题,专利技术提出了一种轻量级AOP框架实现的方法及存储介质。

技术实现思路

[0007]本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的轻量级AOP框架实现的方法及存储介质。
[0008]本专利技术是通过如下技术方案实现的:
[0009]一种轻量级AOP框架实现的方法,其特征在于:包括以下步骤:
[0010]步骤S1、自定义Proxy接口和Proxy Chain类,采用责任链模式实现代理类链式执行;
[0011]步骤S2、通过工厂模式和单例模式自定义ProxyManager类;
[0012]步骤S3、自定义AbstractProxy类,采用模板方法模式实现钩子方法;
[0013]步骤S4、自定义TransactionAspect类,通过TransactionAspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。
[0014]所述步骤S1中,责任链模式实现代理类链式执行是指使用责任链设计模式,实现所有代理类通过链式方式逐一执行。
[0015]所述步骤S1中,使用责任链设计模式,将每个Proxy用一根链串联起来,形成一个Proxy Chain,然后调用这个Proxy Chain,使其依次调用Chain中的每个Proxy。
[0016]所述步骤S2中,通过工厂模式和单例模式创建ProxyManager,通过构造器初始化targetClass目标类和proxyList代理列表,并提供createProxy()方法创建代理对象。
[0017]所述步骤S3中,模板方法模式实现钩子方法是指使用模板方法模式,实现包括但不限于begin()、filter()、before()、after()、error()与end()在内的钩子方法。
[0018]所述步骤S3中,通过模板方法模式实现AbstractProxy抽象类,并实现Proxy接口,在接口中定义方法调用模板,在需要横向拦截的地方定义钩子方法,将钩子方法延迟到子类中去实现。
[0019]所述步骤S3中,框架使用者自定义代理类,根据自身需求自定义选择需要的钩子
并自定义钩子的实现。
[0020]所述步骤S4中,通过TransactionAspect类实现事务控制的切面,即通过filter()钩子方法,过滤出带有Transaction注解的目标方法进行事务控制;通过before()钩子方法,在目标方法执行前开启事务;通过after()钩子方法,在目标方法执行后提交事务;通过error()钩子方法,在遇到异常时回滚事务。
[0021]一种计算机可读存储介质,其特征在于:包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行本专利技术轻量级AOP框架实现的方法。
[0022]本专利技术的有益效果是:该轻量级AOP框架实现的方法及存储介质,在满足AOP框架特性的同时,减轻了框架文件包的大小,从而减轻了框架应用系统文件包的大小,提高了框架应用系统的运行速度及部署的效率。
附图说明
[0023]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]附图1为本专利技术轻量级AOP框架UML类示意图。
具体实施方式
[0025]为了使本
的人员更好的理解本专利技术中的技术方案,下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0026]该轻量级AOP框架实现的方法,包括以下步骤:
[0027]步骤S1、自定义Proxy接口和Proxy Chain类,采用责任链模式实现代理类链式执行;
[0028]步骤S2、通过工厂模式和单例模式自定义ProxyManager类;
[0029]步骤S3、自定义AbstractProxy类,采用模板方法模式实现钩子方法;
[0030]步骤S4、自定义TransactionAspect类,通过TransactionAspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。
[0031]所述步骤S1中,责任链模式实现代理类链式执行是指使用责任链设计模式,实现所有代理类通过链式方式逐一执行。
[0032]所述步骤S1中,使用责任链设计模式,将每个Proxy用一根链串联起来,形成一个Proxy Chain,然后调用这个Proxy Chain,使其依次调用Chain中的每个Proxy。
[0033]Proxy(代理),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。
[0034]所述步骤S2中,通过工厂模式和单例模式创建ProxyManager,通过构造器初始化targetClass目标类和proxyList代理列表,并提供createProxy()方法创建代理对象。
[0035]所述步骤S3中,模板方法模式实现钩子方法是指使用模板方法模式,实现包括但不限于begin()、filter()、before()、after()、error()与end()在内的钩子方法。
[0036]所述步骤S3中,通过模板方法模式实现AbstractProxy抽象类,并实现Proxy接口,在接口中定义方法调用模板,在需要横向拦截的地方定义钩子方法,将钩子方法延迟到子类中去实现。
[0037]所述步骤S3中,框架使用者自定义代理类,如BeforeProxy、AfterProxy代理类,根据自身需求自定义选择需要的钩子并自定义钩子的实现。
[0038]所述步骤S4中,通过TransactionAspect类实现事务控制的切面,即通过fi本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种轻量级AOP框架实现的方法,其特征在于:包括以下步骤:步骤S1、自定义Proxy接口和Proxy Chain类,采用责任链模式实现代理类链式执行;步骤S2、通过工厂模式和单例模式自定义ProxyManager类;步骤S3、自定义AbstractProxy类,采用模板方法模式实现钩子方法;步骤S4、自定义TransactionAspect类,通过TransactionAspect类,实现包括开启事务、提交事务与回滚事务在内的事务特性。2.根据权利要求1所述的轻量级AOP框架实现的方法,其特征在于:所述步骤S1中,责任链模式实现代理类链式执行是指使用责任链设计模式,实现所有代理类通过链式方式逐一执行。3.根据权利要求2所述的轻量级AOP框架实现的方法,其特征在于:所述步骤S1中,使用责任链设计模式,将每个Proxy用一根链串联起来,形成一个Proxy Chain,然后调用这个Proxy Chain,使其依次调用Chain中的每个Proxy。4.根据权利要求3所述的轻量级AOP框架实现的方法,其特征在于:所述步骤S2中,通过工厂模式和单例模式创建ProxyManager,通过构造器初始化targetClass目标类和proxyList代理列表,并提供createProxy()方法创建代理对象。5.根据权利要求4所述的轻量级AOP框架实现的方法,其特征在于:所述步骤S3中...

【专利技术属性】
技术研发人员:孙萌李蒙王可胡超郑亚楠
申请(专利权)人:浪潮软件科技有限公司
类型:发明
国别省市:

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

1