CN112035118A - 一种基于注解自动实现接口幂等的方法 - Google Patents
一种基于注解自动实现接口幂等的方法 Download PDFInfo
- Publication number
- CN112035118A CN112035118A CN202010882615.7A CN202010882615A CN112035118A CN 112035118 A CN112035118 A CN 112035118A CN 202010882615 A CN202010882615 A CN 202010882615A CN 112035118 A CN112035118 A CN 112035118A
- Authority
- CN
- China
- Prior art keywords
- annotation
- idempotency
- automatically
- idempotent
- interface
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/085—Payment architectures involving remote charge determination or related payment systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开一种基于注解自动实现接口幂等的方法,采用自定义注解的方式,在目标方法上添加幂等注解,自动实现对接口调用的幂等性校验。本发明的基于注解自动实现接口幂等的方法,采用自定义注解结合AOP的方式,自动实现对接口调用的幂等性校验,使用简单,实现过程及实现细节对开发人员透明,使开发人员可以专注于业务开发,无需关心幂等实现过程,大大减少了开发人员的代码工作量,提升了开发效率。
Description
技术领域
本发明涉及一种基于注解自动实现接口幂等的方法。
背景技术
在日常开发中,有很多需要进行幂等性校验的接口,如表单提交,多次提交会造成多次重复的保存,浪费服务器资源;支付操作,多次重复支付应只有一次支付成功,绝不可出现重复支付的情况。
在现有的解决方案中,多为采用硬编码或硬编码加Interceptor拦截器的方式进行实现,这两种方案均需要在进行接口调用之前采用硬编码的方式,将操作的唯一标识符手动添加到缓存中,以便后续进行幂等性校验。此种方式仍会存在大量硬编码,开发人员仍需关心校验逻辑的实现,无法完全专注于业务的开发。
发明内容
针对上述现有技术存在的问题,本发明提供一种基于注解自动实现接口幂等的方法,完全实现幂等自动化,开发人员无需进行任何硬编码,使开发人员可以完全专注于业务开发,无需关心幂等性实现过程。
为了实现上述目的,本发明采用的一种基于注解自动实现接口幂等的方法,采用自定义注解的方式,在目标方法上添加幂等注解,自动实现对接口调用的幂等性校验。
作为改进,该基于注解自动实现接口幂等的方法,包括以下步骤:
1)在跳转至操作页面的方法上添加前置幂等注解;
2)在实际操作调用的方法上添加后置幂等注解;
3)AOP自动拦截到前置幂等注解时,自动生成操作唯一标识符,绑定至页面并自动添加至缓存中;
4)AOP自动拦截到后置幂等注解时,自动进行幂等性校验工作,确保接口幂等;
5)AOP后置幂等接口校验无误后,删除缓存中的操作唯一标识符,并继续执行后续逻辑代码;
6)AOP后置幂等接口校验有误时,则返回操作有误提示信息,不再继续执行后续逻辑代码,以保证幂等正确性;
7)至此,幂等校验过程结束。
作为改进,所述步骤3)中的缓存是采用redis进行缓存。
与现有技术相比,本发明的基于注解自动实现接口幂等的方法,采用自定义注解结合AOP的方式,自动实现对接口调用的幂等性校验,使用简单,实现过程及实现细节对开发人员透明(开发人员不知道或者无需关心有此过程的存在),使开发人员可以专注于业务开发,无需关心幂等实现过程,大大减少了开发人员的代码工作量,提升了开发效率。
附图说明
图1为本发明的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。
除非另有定义,本文所使用的所有的技术术语和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同,本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,一种基于注解自动实现接口幂等的方法,包括以下步骤:
1)在跳转至操作页面的方法上添加前置幂等注解;
2)在实际操作调用的方法上添加后置幂等注解;
3)AOP自动拦截到前置幂等注解时,自动生成操作唯一标识符,绑定至页面并自动添加至缓存中;
4)AOP自动拦截到后置幂等注解时,自动进行幂等性校验工作,确保接口幂等;
5)AOP后置幂等接口校验无误后,删除缓存中的操作唯一标识符,并继续执行后续逻辑代码;
6)AOP后置幂等接口校验有误时,则返回操作有误提示信息,不再继续执行后续逻辑代码,以保证幂等正确性;
7)至此,幂等校验过程结束。
本发明通过为每一个操作构建唯一操作标识符,绑定至操作页面并添加至缓存;后续进行操作时,判断缓存中是否有此页面绑定的唯一标识符;如有此唯一标识符,则认为操作合法,删除缓存中的标识符,并进行后续业务处理;如无此唯一标识符,则认为此操作已被执行过,返回错误提示信息,不予进行后续业务处理。
另外,使用本方案时,应确保系统中存在缓存功能,推荐使用redis进行缓存。
本发明的基于注解自动实现接口幂等的方法,采用自定义注解结合AOP的方式,自动实现对接口调用的幂等性校验,使用简单,实现过程及实现细节对开发人员透明(开发人员不知道或者无需关心有此过程的存在),使开发人员可以专注于业务开发,无需关心幂等实现过程,大大减少了开发人员的代码工作量,提升了开发效率。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于注解自动实现接口幂等的方法,其特征在于,采用自定义注解的方式,在目标方法上添加幂等注解,自动实现对接口调用的幂等性校验。
2.根据权利要求1所述的一种基于注解自动实现接口幂等的方法,其特征在于,包括以下步骤:
1)在跳转至操作页面的方法上添加前置幂等注解;
2)在实际操作调用的方法上添加后置幂等注解;
3)AOP自动拦截到前置幂等注解时,自动生成操作唯一标识符,绑定至页面并自动添加至缓存中;
4)AOP自动拦截到后置幂等注解时,自动进行幂等性校验工作,确保接口幂等;
5)AOP后置幂等接口校验无误后,删除缓存中的操作唯一标识符,并继续执行后续逻辑代码;
6)AOP后置幂等接口校验有误时,则返回操作有误提示信息,不再继续执行后续逻辑代码,以保证幂等正确性;
7)至此,幂等校验过程结束。
3.根据权利要求2所述的一种基于注解自动实现接口幂等的方法,其特征在于,所述步骤3)中的缓存是采用redis进行缓存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010882615.7A CN112035118A (zh) | 2020-08-28 | 2020-08-28 | 一种基于注解自动实现接口幂等的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010882615.7A CN112035118A (zh) | 2020-08-28 | 2020-08-28 | 一种基于注解自动实现接口幂等的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112035118A true CN112035118A (zh) | 2020-12-04 |
Family
ID=73586754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010882615.7A Pending CN112035118A (zh) | 2020-08-28 | 2020-08-28 | 一种基于注解自动实现接口幂等的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035118A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553214A (zh) * | 2021-07-30 | 2021-10-26 | 国网电子商务有限公司 | 一种幂等性校验方法及装置 |
CN113805855A (zh) * | 2021-09-30 | 2021-12-17 | 深圳海智创科技有限公司 | 一种方法级别的幂等性解决方法、装置及存储介质 |
CN115277857A (zh) * | 2022-07-28 | 2022-11-01 | 中国工商银行股份有限公司 | 用于接口验证的方法、装置、电子设备及存储介质 |
CN117056971A (zh) * | 2023-08-15 | 2023-11-14 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874654A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 幂等有效性测试方法、装置及设备、可读介质 |
CN110380929A (zh) * | 2019-07-15 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种幂等有效性检测方法、装置及设备 |
-
2020
- 2020-08-28 CN CN202010882615.7A patent/CN112035118A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874654A (zh) * | 2017-05-15 | 2018-11-23 | 阿里巴巴集团控股有限公司 | 幂等有效性测试方法、装置及设备、可读介质 |
CN110380929A (zh) * | 2019-07-15 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种幂等有效性检测方法、装置及设备 |
Non-Patent Citations (1)
Title |
---|
无: "Springboot + redis + AOP+自定义注解来实现页面幂等性校验", 《HTTPS://BLOG.CSDN.NET/HEINAGEMEIMEI/ARTICLE/DETAILS/106177883》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113553214A (zh) * | 2021-07-30 | 2021-10-26 | 国网电子商务有限公司 | 一种幂等性校验方法及装置 |
CN113553214B (zh) * | 2021-07-30 | 2024-04-02 | 国网数字科技控股有限公司 | 一种幂等性校验方法及装置 |
CN113805855A (zh) * | 2021-09-30 | 2021-12-17 | 深圳海智创科技有限公司 | 一种方法级别的幂等性解决方法、装置及存储介质 |
CN115277857A (zh) * | 2022-07-28 | 2022-11-01 | 中国工商银行股份有限公司 | 用于接口验证的方法、装置、电子设备及存储介质 |
CN117056971A (zh) * | 2023-08-15 | 2023-11-14 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
CN117056971B (zh) * | 2023-08-15 | 2024-04-30 | 北京房多多信息技术有限公司 | 数据存储方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035118A (zh) | 一种基于注解自动实现接口幂等的方法 | |
CN111198868B (zh) | 一种智能分库实时数据迁移方法和装置 | |
CN106503974B (zh) | 交易数据处理方法及装置 | |
CN112579602B (zh) | 多版本数据存储方法、装置、计算机设备及存储介质 | |
US20200034042A1 (en) | Method for writing data in a distributed storage system | |
CN113312108A (zh) | Swift报文的校验方法、装置、电子设备及存储介质 | |
CN110765069B (zh) | 一种数据迁移方法、装置及系统 | |
CN106843934A (zh) | 升级文件的处理方法和装置 | |
CN112785408A (zh) | 基于哈希的对账方法及装置 | |
CN113672204A (zh) | 一种接口文档生成方法、系统、电子设备及存储介质 | |
CN112613964A (zh) | 一种对账方法、装置、设备及存储介质 | |
CN110517137A (zh) | 一种生成功能模块化安全合约的方法及系统 | |
CN116502283A (zh) | 一种隐私数据处理方法及装置 | |
CN115495212A (zh) | 任务队列处理方法、装置、设备、存储介质及程序产品 | |
CN114003289A (zh) | 一种应用程序运行方法、计算设备及存储介质 | |
CN101561884B (zh) | 一种可变数据印刷过程中的脚本实现方法及装置 | |
CN108762762B (zh) | 会话信息管理方法、装置、设备和计算机存储介质 | |
CN110008242A (zh) | 一种基于Spark流式程序生成器及程序数据处理方法 | |
CN111324645A (zh) | 区块链的数据处理方法及装置 | |
CN115904317A (zh) | 一种前后端接口统一调用方法、装置、设备及存储介质 | |
CN115865312A (zh) | 基于risc-v架构的祖冲之算法实现方法、协处理器和运算装置 | |
CN112925557B (zh) | 数据处理装置、方法及计算设备 | |
CN112084046B (zh) | 一种分布式计算中泛化接口调用方法及装置 | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
CN113722321A (zh) | 数据导出方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201204 |
|
RJ01 | Rejection of invention patent application after publication |