Как динамически изменить Spring CacheManager? - PullRequest
0 голосов
/ 08 ноября 2018

Я знаю статический способ использования CacheManager.

@Cacheable(key = "'user'.concat(#userId).concat(#permission).concat(#user.userName)", cacheManager="UserCacheManager")
public boolean hasPermission(AppUser user, int userId, String permission) {
}

Как можно динамически изменить CacheManager для идентификатора пользователя, начиная с маленькой буквы и заглавной буквы.

- SmallLetterCacheManager - CapitalLetterCacheManager

1 Ответ

0 голосов
/ 12 ноября 2018

В этом случае проще всего было бы всегда преобразовать userId (или, возможно, user.userName) в нижний регистр, а затем кэшировать его. Для приложения нетипично разрешать как "aSmith", так и "asmith" как 2 отдельных отдельных пользователя.

Однако, если вам необходимо, и ваши требования к приложению в этом случае строги, вам следует взглянуть на CacheResolver, здесь . Также см. Javadoc .

...