2016-10-04 6 views
0

Я пытался понять кеширование, которое происходит на стороне клиента. К сожалению, я не могу найти какие-либо ресурсы, которые могут мне помочь.Кэширование ответной реакции на весну

У меня есть объекты модели сотрудника, которые довольно малы по размеру. После использования запроса GET для получения объекта сотрудника я хочу, чтобы он был кэширован на стороне клиента. Теперь, когда запрос приходит снова, чтобы получить того же сотрудника, я хочу посмотреть, был ли изменен фактический объект, если нет , затем откройте кеш клиента, чтобы вернуть измененный объект, добавив его в кеш.

Я использую Spring boot для создания конечной точки 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 
} 

и в вашем перехватчик, вам нужно будет смотреть на обработчик метод, проверьте, имеет ли он эту аннотацию, и если да, установите соответствующие заголовки.

Смежные вопросы