如何在Java Spring应用程序中缓存使用Netflix的Feign库发出的HTTP请求

Ale*_*dro 5 spring caching netflix-feign spring-cloud-feign spring-cloud-netflix

在使用Netflix的Feign向服务发出HTTP请求的Spring Boot应用程序中,是否有一种简单的方法可以自动缓存并自动返回这些缓存的值?缓存应基于传递给请求的参数(类似于在X分钟内记住一个函数)。

我正在寻找类似以下@Cache注释的内容:

@Component
@FeignClient(value = "facebook", url = "${auth.facebook.url}")
public interface FacebookClient {
    @Cache(600) // Something like this.
    @RequestMapping(method = RequestMethod.GET, value = "/debug_token?input_token={input_token}&access_token={access_token}")
    Map debugToken(@PathVariable("input_token") String inputToken, @PathVariable("access_token") String appToken);
}
Run Code Online (Sandbox Code Playgroud)

当然,我可以使用周围的装饰器自己缓存它FacebookClient,我想知道是否有一种更快/更少的代码方式。

Ste*_*com 3

Springs@Cacheable可以满足您的需求。

检查:使用 Spring 缓存数据