前言:调用第三方接口有次数限制,而开发联调测试时,又不得不多次调用,怎么解决处理呢?
切面+缓存
首先针对目标方法增加环绕通知切面,然后再把执行接口结果存入到redis里,从而达到减少调用次数。
为什么使用环绕通知?
因为环绕通知可以控制目标方法的执行,即再切面里获取 目标方法的接口名称+方法名称以及参数,然后用上述信息作为redis的key,然后通过ProceedingJoinPoint(ProceedingJoinPoint只能用在around环绕通知中,所以这也解释了为什么用环绕通知切面)中的proceed方法来获取目标方法的结果集(第三方接口)作为redis的value,也可以结合实际业务设置过期时间。
这样以来就可以控制调用第三方接口的次数了,如果该接口请求参数相同,则会根据拼串后的key直接取缓存value值(接口返回值),然后返回给目标方法,最终返回给前端使用。