Очистить кеш с аннотациями JSR-107 - PullRequest
0 голосов
/ 13 декабря 2018

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

DELETE /cache/{cacheName}

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

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

на что-то подобное?

@CacheRemoveAll
public void clearCache(String cacheName) {}

Так что я избегаю инъекций CacheManager.

1 Ответ

0 голосов
/ 13 декабря 2018

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

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

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

@CacheRemoveAll(cacheName="cache-2")
public void clearCache2(){}
...