jjzjj

java - 在 Cacheable 注释中的条件下,如何使用 key

我正在使用@cacheable注释缓存函数的结果。我有3个不同的缓存,每个缓存的键是当前登录用户的用户ID与方法中的参数连接。在某个事件中,我想驱逐所有具有以该特定用户ID开头的键的缓存条目。例如:@Cacheable(value="testCache1",key="'abcdef'")我希望缓存逐出注解是这样的:@CacheEvict(value="getSimilarVendors",condition="key.startsWith('abc')")但是当我尝试实现它时,它给了我一个错误:Propertyorfield'key'cannotbefoundonobjectoftyp

java - 用于 Java 的开源分布式缓存

可以在Java中使用的最好的开源分布式缓存是什么?我以为是EHCache,但显然只有在使用商业产品TerracottaServerArray时才能在多个节点上进行扩展。我的目标是为有一定延迟的实时流数据构建缓存,我实际估计的数据大小在8gb量级,而生产速度要慢得多,在3mb量级每秒。因为有一个初始延迟,我希望我的缓存也被复制,因为当从0开始时我的缓存需要一个预热期,我非常想避免这一点。 最佳答案 Memcached值得研究。 关于java-用于Java的开源分布式缓存,我们在StackO

java - 通过外部属性禁用 spring 方法缓存

我使用ehcache和注释驱动配置配置了spring方法缓存。但是我希望能够从我们在应用程序中使用的配置文件中禁用它。我的第一个想法是在方法缓存被禁用时不带任何参数地调用net.sf.ehcache.CacheManager.CacheManager()。这会引发异常:java.lang.IllegalArgumentException:loadCachesmustnotreturnanemptyCollectionatorg.springframework.util.Assert.notEmpty(Assert.java:268)atorg.springframework.cache

java - 如何迭代缓存条目

我在独立环境中使用Spring3.1。我正在使用@Cachable注释缓存我的条目。有时我需要遍历缓存列表以获取特定值(不是键)。所以我设法检索了缓存列表,但我如何迭代它的元素。privateClientDTOgetClientDTOByClientId(IntegerclientId){CacheclientCache=null;try{clientCache=ehCacheCacheManager.getCache("client");//needheretoiterateonclientCache.how?}catch(Exceptione){log.error("Couldnt

java - Ehcache 磁盘存储不干净关闭

我正在使用具有磁盘存储持久性的缓存。在随后重新运行该应用程序时,我收到以下错误:net.sf.ehcache.store.DiskStoredeleteIndexIfCorruptWARNING:TheindexfordatafileMyCache.dataisoutofdate,probablyduetoanuncleanshutdown.DeletingindexfileMYCache.index除了在应用程序的某处显式调用net.sf.ehcache.CacheManager.shutdown()之外,还有什么方法可以解决这个问题吗?缓存配置:复制问题的代码:importjava

java - 如何设置JMX监控的net.sf.ehcache.CacheManager名称?

我在使用JRE1.6部署在Tomcat6上的Web应用程序中使用EhCache1.4.0、Spring3.0.5。我通过JMX公开L2缓存管理,如下所示:ThecacheManagerconfiguration.truetruetruetruefalsefalseorg.hibernate.dialect.MySQLInnoDBDialecttrueorg.hibernate.cache.EhCacheProviderapplicationOne-web/ehcache.xmlorg.hibernate.cache.StandardQueryCacheFactory我必须允许使用jmx

java - 防止 ehcache 在启动时尝试访问互联网

我有一个相当简单的非集群应用程序,使用spring和hibernate运行ehcache。启动时出现此错误:java.net.SocketTimeoutException:连接超时如何阻止此调用?这是我的ehcache.xml:我确信这个ehcache.xml正在被拾取和使用,例如没有类路径问题。我正在使用:ehcache2.0.1和hibernate3.3.1.GA 最佳答案 添加updateCheck="false"时给你的元素不起作用,请尝试使用-Dnet.sf.ehcache.skipUpdateCheck=true设置系统

java - 解析依赖项时出现 Maven 错误

我是Maven的新手,正在尝试设置我的第一个POM秒。我的应用程序将使用EhCache进行缓存。转到MavenCentralRepo(链接here)我复制粘贴了标记并将其复制到我的pom.xml像这样:...manydependenciesabovethispointcompileorg.hibernatehibernate-entitymanager4.0.1.Finalcompilenet.sf.ehcacheehcache2.5.0compilejasperreportsjasperreports3.5.3...manydependenciesbelowthispoint当我保存

java - Weblogic 12.1.3.0.0 - Ehcache JMS 复制 - InvalidExpressionException : Expression : "cacheManagerUniqueId

我有基于Spring的应用程序和EhcacheJMS复制。我需要将此应用程序部署到Weblogic12,但是出现以下部署失败错误:javax.jms.InvalidSelectorException:weblogic.messaging.kernel.InvalidExpressionException:Expression:"cacheManagerUniqueId600767500怎么了?weblogic-application.xmljavax.validation.*javax.validation.spi.*-->javax.persistence.spi.*javax.pe

java - 具有大量并发事务的 Hibernate 二级缓存 ObjectNotFoundException

我们有一个Java应用程序,它使用MySQL、Hibernate(3.5.1-Final)和EHcache(1.2.3)作为我们的二级缓存。我们的hibernate.properties隔离级别是Read-committedisolation=2#2-Readcommittedisolationhibernate.connection.isolation=2在大量并发事务下,我们发现某些集合(数据库关联)​​在加载时会抛出ObjectNotFoundException并且似乎二级缓存正在返回该集合的旧副本。我们有许多不同类型的事务访问此集合(仅阅读),但只有几个会向其中添加/删除项目。