如何解决为什么 Spring Boot/EhCache 不使用指定的配置文件?
我正在尝试在 Spring Boot 2 应用程序中启用 EhCache 3 缓存,并且尽我所知我已经正确设置了它,但是缓存只是......不工作,我没有得到任何信息为什么。
我已添加到我的 Maven POM 中:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
我添加了 @EnableCaching
注释。
我已经指定了配置,我正在使用 bootstrap.yml
所以:
spring:
cache:
jcache:
config: classpath:ehcache.xml
但以防万一我也将 spring.cache.jcache.config
版本放在属性文件中。
我已经编写了一个基本的 src/main/resources/ehcache.xml
文件...
最后,我将一个方法设置为 @Cacheable
,但是当我使用“无法找到名为...的缓存”调用它时会出错
我在 ehcache.xml
中写什么实际上并不重要。我可以粘贴 Lorem Ipsum 文本而不是 XML,并且没有错误或指示它甚至打开了文件。
Spring Boot 本身似乎已经为 JSR 107 自动配置找到了合适的先决条件:
jcacheCacheConfiguration matched:
- @ConditionalOnClass found required classes 'javax.cache.Caching','org.springframework.cache.jcache.jcacheCacheManager' (OnClassCondition)
- Cache org.springframework.boot.autoconfigure.cache.jcacheCacheConfiguration automatic cache type (CacheCondition)
我尝试回到 EhCache 2,所以我用 org.ehcache
替换了 net.sf.ehcache
,将我的 YML 切换到 ehcache
而不是 jcache
并删除了 {{1} }.这将其放入我的自动配置报告中:
javax.cache
但我仍然没有任何可用的缓存。为什么 Spring 的自动配置机制会提到它找到了 EhCache 2 配置文件但实际上没有配置任何东西?是否还有其他一些我需要在报告中查找的自动配置类,例如 GenericCache、CacheConfiguration 等?
我看不到任何迹象表明它试图做任何事情来启动缓存子系统、读取我的配置、做任何事情。
与自动配置一样方便,当它不想做这件事时,它令人沮丧地告诉我它为什么决定让我失望,所以我真的可以使用一些帮助来弄清楚如何梳理这些细节。东西。
我错过了什么吗?我可以调试什么以及在哪里可以找出它为什么忽略我试图告诉它的 XML 配置?我尝试在 jcache 设置周围的 Spring CacheProperties 中添加一些断点,但是当我附加调试器时它没有命中它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。