Очистить кеш с аннотациями JSR-107

В REST API я хочу создать одну конечную точку, которая очищает определенный кеш:

DELETE /cache/{cacheName}

Можно ли реализовать его вместо:

public void clearCache(String cacheName) {
    cacheManager.getCache(cacheName).clear();
}

на что-то вроде этого?

@CacheRemoveAll
public void clearCache(String cacheName) {}

Поэтому я избегаю введения CacheManager.


person anat0lius    schedule 13.12.2018    source источник


Ответы (1)


К сожалению, нет.

Аннотации нельзя настроить с помощью динамических объектов, можно использовать только константы. Таким образом, невозможно передать параметр пути cacheName в аннотацию @CacheRemoveAll. Вы можете сделать это только в том случае, если заранее знаете все имена кешей — создав конечную точку DELETE для каждого кеша, например:

@CacheRemoveAll(cacheName="cache-1")
public void clearCache1(){}

@CacheRemoveAll(cacheName="cache-2")
public void clearCache2(){}
person madhead    schedule 13.12.2018