2016-10-04 80 views
0

我试图理解发生在客户端的缓存。 不幸的是我无法找到任何可以帮助我的资源。Spring引导响应缓存

我有员工模型对象,其尺寸相当小。 一旦使用GET请求获取雇员对象,我希望它被缓存在客户端 现在,当请求再次获得同一雇员时,我想查看实际对象是否已被修改,如果不是,然后从客户端缓存中提供服务,否则返回修改后的对象,并将其添加到缓存中。

我使用Spring引导来创建REST端点。 我能弄清楚的是缓存控制将被用于某些方式,但我不确定这些对象是如何在春天添加的。

这里的任何帮助非常感谢!

感谢,

阿马尔

回答

0

HTTP缓存是不是一个轻松的话题。有不同的方法可以做到这一点,你可能应该先熟悉一下机制,这似乎是一个很好的起始资源:HTTP caching

然后,你可能会确定一些你想要重用的常见使用模式。一种方法是创建自定义注释和对其起作用的自定义注释和write an interceptor

例如,你可以写这样的注释:

@Inherited 
@Retention(RUNTIME) 
@Target({METHOD, TYPE}) 
public @interface CacheFor { 
    long amount(); 
    TimeUnit unit() default TimeUnit.SECONDS; 
} 

,并用它在控制器方法是这样的:

@CacheFor(amount=10, unit = MINUTES) 
@RequestMapping(bla bla) 
public FooBar serveMyData(){ 
    // code here 
} 

,并在你的拦截器,你需要看看处理程序方法,检查它是否有此注释,如果有,请设置适当的标题。