我想评估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的信息。
答案 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公共组织有一个简单的实施帖子。请参阅以下链接;