У меня есть проект springbok, который зависит от модуля общего обслуживания (jar), в этом модуле общего обслуживания у нас есть следующий класс конфигурации:
@Configuration
@ConditionalOnClass(RedisTemplate)
class RedisConfig {
@Primary
@Bean
RedisTemplate<String, Object> redisTemplate() {
...
}
@Bean
StringRedisTemplate stringRedisTemplate() {
...
}
}
, в котором мы хотим использовать кэш пружин этот проект, поэтому у нас есть
spring.cache.type = redis
, но при запуске проекта мы получаем следующую ошибку:
Parameter 0 of method cacheManager in org.springframework.boot.autoconfigure.cache.RedisCacheConfiguration required a bean of type 'org.springframework.data.redis.core.RedisTemplate' that could not be found.
- Bean method 'redisTemplate' in 'RedisAutoConfiguration.RedisConfiguration' not loaded because @ConditionalOnMissingBean (names: redisTemplate; SearchStrategy: all) found bean 'redisTemplate'
- Bean method 'stringRedisTemplate' in 'RedisAutoConfiguration.RedisConfiguration' not loaded because @ConditionalOnMissingBean (types: org.springframework.data.redis.core.StringRedisTemplate; SearchStrategy: all) found bean 'stringRedisTemplate'
эта информация об ошибке это действительно сбивает с толку, он говорит, что RedisAutoConfiguration.RedisConfiguration обнаружил bean-компоненты 'redisTemplate' и 'stringRedisTemplate' ,, поэтому он не будет создавать новые bean-компоненты из этих двух ,, но так как он обнаружил эти два bean-компонента ,, почему в начале он говорит, что RedisCacheConfiguration не может найти бин типа 'RedisTemplate' saying это высказывание противоречиво?
Прежде всего, я определил бины 'redisTemplate' и 'stringRedisTemplate' в модуле общего обслуживания, почему эти два бина не могут быть найдены RedisAutoConfiguration.RedisConfiguration