Вы можете добавить 2-й параметр к одному методу, который будет служить только ключом кеша.Пример использования customerId
в качестве ключа и действуйте следующим образом:
@Service
public class CustomerLookup {
@Autowired
@Lazy
private CustomerLookup self;
@CachePut("customerCache", key="#customerId")
public Customer getCustomerByGuid(final String customerGuid, String customerId) {
Customer customer = self.getCustomerByCustId(final String customerId);
//......
}
}
Обратите внимание на самоинжекцию CustomerLookup
, если вы этого не сделаете, то кеш не будет работать при вызове getCustomerByCustId(final String customerId)
метод в getCustomerByGuid
.Также обратите внимание на @CachePut
вместо @Cacheable
на getCustomerByGuid
, при этом вы уверены, что этот метод будет вызываться каждый раз.