2015-10-22 3 views
0

Я работаю над настройкой поддержки моего приложения Java Spring Cache. Я хочу, чтобы установить глобальный @CacheConfig для всего моего проекта, потому что я хочу, чтобы все операции кеша в приложении использовали то же самое имя кэша и пользовательской реализации KeyGenerator. Я надеялся, что я могу аннотировать некоторый глобальный класс конфигурации или мой CacheManager с @CacheConfig, но он выглядит так: @CacheConfig предназначен только для конфигурации класса метода с помощью аннотации кэш-памяти. Таким образом, мне нужно будет использовать то же точное определение аннотации @CacheConfig для каждого класса, используя операции Spring Cache.Spring Cache: как указать глобальный @CacheConfig для приложения

Обходные, что я собираюсь использовать в это время, это реализовать мои собственные мету-аннотаций аннотаций Spring Cache, такие как @Cacheable, так что точно такими же name и keyGenerator будут использоваться для всех операций кэширования. Но должен быть лучший способ сделать это, чем использовать пользовательские аннотации. Если я когда-либо сталкиваюсь с ситуацией, когда я хочу использовать Cache с именем нечто иное, чем «default», то я столкнулся с проблемой с моей пользовательской аннотацией.

Любые идеи? Спасибо.

ответ

1

Да, это выполнимо.

Все, что вам нужно, это заполнить AnnotationCacheOperationSource собственными CacheAnnotationParser, см., Как это делается по умолчанию: SpringCacheAnnotationParser.

К сожалению, я не могу предоставить вам фрагменты кода, мой Spring-fu слишком слаб в данный момент. Если вам удастся это сделать, сообщите мне.

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