使用Spring和Hibernate,Hazelcast与Ehcache + Hazelcast注释在service / dao层进行缓存?

时间:2011-11-11 15:45:03

标签: hibernate spring ehcache distributed-caching hazelcast

我想评估Hazecast与Ehcache分布式缓存。

首先如何在具有标准dao / service层的Spring + Hibernate项目中使用它们。 Ehcache具有非常优雅且易于使用的注释,如:

@Cacheable(cacheName = "test", keyGenerator = @KeyGenerator (
            name = "SpELCacheKeyGenerator", properties = @Property(value = "#key.string(#args[0])", name = "expression")))

Hazelcast有什么类似的东西吗?我没有找到任何关于如何以实时/ dtos方式使用Hazelcast的信息。

2 个答案:

答案 0 :(得分:6)

Hazelcast 2.1可用,它具有Spring Cache的实现。 Spring Cacheable注释现在可以很容易地与Hazelcast一起使用。

http://www.hazelcast.com/docs/2.1/manual/multi_html/ch14s03.html

答案 1 :(得分:3)

Spring的抽象抽象是由Spring 3.1引入的,旨在缓存方法的结果,从而减少基于缓存中可用信息的执行次数。 如果你想使用EhCache或Hazelcast作为Hibernate二级缓存,那么你应该使用Hibernate的配置(使用Spring xml或Hibernate注释)。 Hibernate L2缓存和Spring的缓存之间没有任何关系。

Spring有两个开箱即用的缓存提供程序实现。来自官方文档:Spring Cache Abstraction

  

对于JDK java.util.concurrent.ConcurrentMap和Ehcache,有两个开箱即用的集成。

目前Hazelcast没有内置的Spring Cache Provider。但是,Hazelcast公共组织有一个简单的实施帖子。请参阅以下链接;

Integrating Spring 3.1 Cacheable Annotation with Hazelcast