Spring启动和javax缓存

时间:2017-07-01 00:27:42

标签: caching spring-boot

我有一个spring boot应用程序,我正在尝试配置javax缓存。如果我包含启用缓存注释,那么spring无法找到下面bean中定义的javax cacheManager。如果我注释掉缓存注释,则会找到bean但我收到的错误是没有配置缓存提供程序。任何见解都将不胜感激。

# Set seed for reporducibility
set.seed(123)

# Create df1
a<-sample(1:10, 10)
b<- sample(1:10,10) 
c<- sample(1:10,10) 
d<-sample(1:10, 10)
df1<- as.data.frame(cbind(a, b, c, d))

# Create df2
index1<- c(1:10)
index2 <- sample(1:1000, 10)
df2<- as.data.frame(cbind(index1, index2))

# Load packages
library(dplyr)
library(tidyr)

df1_new <- df1 %>%
  mutate(ID = 1:n()) %>%
  gather(Column, index1, -ID) %>%
  left_join(df2, by = "index1") %>%
  select(-index1) %>%
  spread(Column, index2) %>%
  select(-ID)

1 个答案:

答案 0 :(得分:2)

javax.cache.CacheException: No CachingProviders have been configured

此异常表示类路径上没有CachingProviders实现(.jar)。

考虑在pom.xml文件中添加CachingProvider实现,例如Ehcache:

    <dependency>
        <groupId>org.ehcache</groupId>
        <artifactId>ehcache</artifactId>
    </dependency>

Caching.getCachingProvider()from Ehcache 3.x JSR-107 Provider doc.

  

从中检索默认的CachingProvider实现   应用程序的类路径。当且仅当存在时,此方法才有效   类路径中只有一个JCache实现jar。如果有   然后,类路径中的多个提供程序将使用完全限定名称   org.ehcache.jsr107.EhcacheCachingProvider检索Ehcache   缓存提供商。你可以使用   改为使用Caching.getCachingProvider(String)静态方法。