当前位置: 首页 > 知识库问答 >
问题:

Spring Boot和javax缓存

爱琪
2023-03-14

我有一个spring boot应用程序,我正在尝试配置javax缓存。如果我包括enable caching注释,那么spring就找不到下面bean中定义的javax cacheManager。如果我注释掉缓存注释,就会找到bean,但我会得到一个错误,即没有配置缓存提供程序。如有任何见解,将不胜感激。

@Configuration
@EnableCaching
public class CacheConfig {

@Bean(name = "cacheManager")
public CacheManager cacheManager() {
      CachingProvider cachingProvider = Caching.getCachingProvider();
      CacheManager cacheManager = cachingProvider.getCacheManager();
      Arrays.stream(LookupCache.values()).forEach(e -> cacheManager.createCache(e.getName(), e.cacheConfig(List.class)));
      return cacheManager;
   }
}

共有1个答案

许俊风
2023-03-14
javax.cache.CacheException: No CachingProviders have been configured

这个异常意味着类路径上没有CachingProviders实现(.jar)。

考虑向pom添加一个CachingProvider实现。xml文件,例如Ehcache:

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

Caching.getCachingProvider()(来自Ehcache 3. x JSR-107提供程序文档。)

从应用程序的类路径检索默认的CachingProvider实现。当且仅当类路径中只有一个JCache实现jar时,此方法才有效。如果类路径中有多个提供者,则使用完全限定名org。ehcache。jsr107.EhcacheCachingProvider来检索Ehcache缓存提供程序。您可以通过使用缓存来实现这一点。改为getCachingProvider(String)静态方法。

 类似资料:
  • 我正在寻找集成Hazelcast到我的应用程序... 我的要求是将所有数据加载到缓存并从缓存中提取。。 我有两个选择。 1) Hazelcast IMap 2)因为我使用的是Spring启动,所以我可以使用(@Cacheable/@CacheEvict)。 我能得到一些建议吗... 提前谢谢你。。

  • 我的springboot版本是2.3.7。我知道spring boot starter验证不是spring boot starter web的可传递依赖项。但即使单独添加了它,我的注释也不起作用。 //下面的依赖我已经添加build.gradle编译'org.springframework.boot: spring-boot-starter-validation' //我希望在请求时出错的示例类

  • 本文向大家介绍springboot的缓存技术的实现,包括了springboot的缓存技术的实现的使用技巧和注意事项,需要的朋友参考一下 引子 我门知道一个程序的瓶颈在于数据库,我门也知道内存的速度是大大快于硬盘的速度的。当我门需要重复的获取相同的数据的时候,我门一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者远程方法的调用上,导致程序性能的恶化,这更是数据缓存要解决的问题。

  • 在尝试使用JSR-303(hibernate Validator)验证模型时,我在将

  • 本文向大家介绍springboot集成spring cache缓存示例代码,包括了springboot集成spring cache缓存示例代码的使用技巧和注意事项,需要的朋友参考一下 本文介绍如何在springboot中使用默认的spring cache, 声明式缓存 Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、

  • 本文向大家介绍SpringBoot使用Redis缓存的实现方法,包括了SpringBoot使用Redis缓存的实现方法的使用技巧和注意事项,需要的朋友参考一下 (1)pom.xml引入jar包,如下:   (2)修改项目启动类,增加注解@EnableCaching,开启缓存功能,如下:   (3)application.properties中配置Redis连接信息,如下:   (4)新建Redis