2016-07-28 2 views
0

Обратитесь к Spring Cache, который можно использовать для кеширования служебных вызовов.Как использовать весенний кеш с двумя свойствами в качестве ключа

Специально следующие XML-фрагмент:

<!-- the service we want to make cacheable --> 
<bean id="bookService" class="x.y.service.DefaultBookService"/> 

<!-- cache definitions --> 
<cache:advice id="cacheAdvice" cache-manager="cacheManager"> 
    <cache:caching cache="books"> 
     <cache:cacheable method="findBook" key="#isbn"/> 
     <cache:cache-evict method="loadBooks" all-entries="true"/> 
    </cache:caching> 
</cache:advice> 

<!-- apply the cacheable behavior to all BookService interfaces --> 
<aop:config> 
    <aop:advisor advice-ref="cacheAdvice" pointcut="execution(* x.y.BookService.*(..))"/> 
</aop:config> 

выше механизм работает, если ключ находится одно свойство. Мне нужно кэшировать на основе isbn и автора.

Может кто-нибудь предложить, как можно активировать кеширование с использованием двух свойств?

Благодаря

ответ

1

вы можете легко использовать key="#author.toString() + #isbn.toString()") или реализовать свой собственный KeyGenerator и настроить его или просто опустить атрибут ключа, чтобы все аргументы были приняты во внимание.

+0

Спасибо. Отлично. – kevin

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