While the caching layer provided as part of Hibernate unlocks easy and convenient caching for high frequency or high cost data; but what about at a higher level and more generally, method calls can be expensive too.
Newer versions of the Spring framework (since version 3.1) features the ability to transparently cache method calls and their returned results, through the use of the com.hazelcast.spring.cache.HazelcastCacheManager
class, and its registration as a Spring cache manager.
<cache:annotation-driven cache-manager="cacheManager" /> <bean id="cacheManager" class="com.hazelcast.spring.cache.HazelcastCacheManager"> <constructor-arg ref="hzInstance"/> </bean>
With this in place, we can then mark appropriate methods as @Cacheable
and where required use @CacheEvict
to trigger cache invalidations.