(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211038440.7
(22)申请日 2022.08.29
(71)申请人 浪潮软件科技有限公司
地址 250100 山东省济南市高新区浪潮路
1036号浪潮科技园
(72)发明人 孙萌 李蒙 王可 胡超 郑亚楠
(74)专利代理 机构 济南信达专利事务所有限公
司 37100
专利代理师 郗艳荣
(51)Int.Cl.
G06F 9/445(2018.01)
(54)发明名称
一种轻量级AOP框架实现的方法及存 储介质
(57)摘要
本发明特别涉及一种轻量级AOP框架实现的
方法及存储介质。 该轻量级AOP框架实现的方法
及存储介质, 自定义Proxy接口和Proxy Chain
类, 采用责任链模式实现代理类链式执行; 通过
工厂模式和单例模式自定义ProxyManager 类; 自
定义AbstractProxy类, 采用模板方法模式实现
钩子方法; 自定义TransactionAspect类, 通过
TransactionAspect类, 实现包 括开启事 务、 提交
事务与回滚事务在内的事务特性。 该轻量级AOP
框架实现的方法及存储介质, 在满足AOP框架特
性的同时, 减轻了框架文件包的大小, 从而减轻
了框架应用系统文件包的大小, 提高了框架应用
系统的运行速度及部署的效率。
权利要求书1页 说明书3页 附图1页
CN 115480837 A
2022.12.16
CN 115480837 A
1.一种轻量级AOP框架实现的方法, 其特 征在于: 包括以下步骤:
步骤S1、 自定义Proxy接口和Proxy Chain类, 采用责任链模式实现代理类链式执 行;
步骤S2、 通过工厂模式和单例模式自定义ProxyMana ger类;
步骤S3、 自定义Abst ractProxy类, 采用模板方法模式实现钩子方法;
步骤S4、 自定义TransactionAspect类, 通过TransactionAspect类, 实现包括开启事
务、 提交事务与回滚 事务在内的事务特性。
2.根据权利 要求1所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S1中, 责任
链模式实现代理类链式执行是指使用责任链设计模式, 实现所有代理类通过链式方式逐一
执行。
3.根据权利 要求2所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S1中, 使用
责任链设计模式, 将每个Proxy用一根链串联起来, 形成一个Proxy Chain, 然后调用这个
Proxy Chain, 使其依次调用C hain中的每个Proxy。
4.根据权利 要求3所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S2中, 通过
工厂模式和单例模式创建ProxyManager, 通过构造器初始化targetClass目标类和
proxyList代理列表, 并提供createProxy()方法创建代理对象。
5.根据权利 要求4所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S3中, 模板
方法模式实现钩子方法是指使用模板方法模式, 实现包括但不 限于begin()、 filter()、
before()、 after()、 er ror()与end()在内的钩子方法。
6.根据权利 要求5所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S3中, 通过
模板方法模式实现AbstractProxy抽象类, 并实现Proxy接口, 在接口中定义方法调用模板,
在需要横向拦截的地方定义钩子方法, 将钩子方法延迟到 子类中去实现。
7.根据权利 要求6所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S3中, 框架
使用者自定义代理类, 根据自身需求自定义选择需要的钩子并自定义钩子的实现。
8.根据权利 要求7所述的轻量级AOP框架实现的方法, 其特征在于: 所述步骤S4中, 通过
TransactionAspect类实现事务控制的切面, 即通过filter()钩子方法, 过滤出带有
Transaction注解的目标方法进行事务控制; 通过before()钩子方法, 在目标方法执行前
开启事务; 通过after()钩子方法, 在目标方法执行后提交事务; 通过err or()钩子方法, 在
遇到异常时 回滚事务。
9.一种计算机可读存储介质, 其特征在于: 包括存储器和处理器, 所述存储器中存储有
计算机程序, 所述处理器被设置为运行所述计算机程序以执行权利要求1 ‑8所述的轻量级
AOP框架实现的方法。权 利 要 求 书 1/1 页
2
CN 115480837 A
2一种轻量级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、 通过工厂模式和单例模式自定义ProxyMana ger类;
[0012]步骤S3、 自定义Abst ractProxy类, 采用模板方法模式实现钩子方法;
[0013]步骤S4、 自定义Transact ionAspect类, 通过Transact ionAspect类, 实现包括开启
事务、 提交事务与回滚 事务在内的事务特性。
[0014]所述步骤S1中, 责任链模式实现代理类链式执行是指使用责任链设计模式, 实现
所有代理类通过链式方式逐一执 行。
[0015]所述步骤S1中, 使用责任链设计模式, 将每个Proxy用一根链串联起来, 形成一个
Proxy Chain, 然后调用这个Proxy Chain, 使其依次调用C hain中的每个Proxy。
[0016]所述步骤S2中, 通过工厂模式和单例模式创建ProxyManager, 通过构造器初始化
targetClas s目标类和proxyL ist代理列表, 并提供createProxy()方法创建代理对象。
[0017]所述步骤S3中, 模板方法模式实现钩子方法是指使用模板方法模式, 实现包括但
不限于begi n()、 filter()、 before()、 after()、 er ror()与end()在内的钩子方法。
[0018]所述步骤S3中, 通过模板方法模式实现AbstractProx y抽象类, 并实现Prox y接口,
在接口中定义方法调用模板, 在需要横向拦截的地方定义钩子方法, 将钩子方法延迟到子
类中去实现。
[0019]所述步骤S3中, 框架使用者自定义代理类, 根据自身需求自定义选择需要的钩子说 明 书 1/3 页
3
CN 115480837 A
3
专利 一种轻量级AOP框架实现的方法及存储介质
文档预览
中文文档
6 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共6页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 16:34:09上传分享