为什么 Spring 试图创建一个 `redisReferenceResolver` bean?
Why is Spring trying to create a `redisReferenceResolver` bean?
我的项目确实使用了 Redis,但我的单元测试模拟了它。但是它并没有嘲笑它 enough 因为我得到了这个堆栈跟踪片段:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisReferenceResolver': Cannot resolve reference to bean 'redisTemplate' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'redisTemplate' available
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:378)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
正确。我已经仔细确保没有可用的 redisTemplate bean,因为我不想在我的单元测试中使用 运行 redis。但我不知道它为什么要尝试创建 redisReferenceResolver
bean。
我已经关闭了自动配置:
spring:
profiles: RedisMock
autoconfigure:
exclude:
- org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
(我的测试在顶部有 @ActiveProfiles({"WebMvcTest","RedisMock"})
)
我确实有一个 class 用 @RedisHash
注释,但我需要它来进行测试。
任何人都知道什么可能触发自动配置?
谢谢
redisReferenceResolver
由 Spring 数据对 Redis-based 存储库的支持定义。将 spring.data.redis.repositories.enabled
设置为 false
并确保您没有在应用中的任何地方使用 @EnableRedisRepositories
将禁用它。
我的项目确实使用了 Redis,但我的单元测试模拟了它。但是它并没有嘲笑它 enough 因为我得到了这个堆栈跟踪片段:
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'redisReferenceResolver': Cannot resolve reference to bean 'redisTemplate' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'redisTemplate' available
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:378)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)
正确。我已经仔细确保没有可用的 redisTemplate bean,因为我不想在我的单元测试中使用 运行 redis。但我不知道它为什么要尝试创建 redisReferenceResolver
bean。
我已经关闭了自动配置:
spring:
profiles: RedisMock
autoconfigure:
exclude:
- org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration
(我的测试在顶部有 @ActiveProfiles({"WebMvcTest","RedisMock"})
)
我确实有一个 class 用 @RedisHash
注释,但我需要它来进行测试。
任何人都知道什么可能触发自动配置?
谢谢
redisReferenceResolver
由 Spring 数据对 Redis-based 存储库的支持定义。将 spring.data.redis.repositories.enabled
设置为 false
并确保您没有在应用中的任何地方使用 @EnableRedisRepositories
将禁用它。