2016-10-04 107 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 
} 

,並在你的攔截器,你需要看看處理程序方法,檢查它是否有此註釋,如果有,請設置適當的標題。