<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>
pom 引入jar包 ,如果redis配置文件使用 lettuce ,还需要引入 commons-pool2 ,否则会报错
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>
还用到了redis分布式锁,引入
<dependency><!-- spring integration --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-integration</artifactId><version>2.5.0</version></dependency><dependency><!-- spring integration与redis结合,实现redis分布式锁 --><groupId>org.springframework.integration</groupId><artifactId>spring-integration-redis</artifactId></dependency>
启动项目时,启动失败
有一条info信息
Multiple Spring Data modules found, entering strict repository configuration mode!
但是具体的错误信息是,有个 对象依赖关系无法解析的错误
开始怀疑是info信息里面的报错影响的
加了配置
spring:data:redis:repositories:enabled: false
没用,再springboot启动类上加入
@SpringBootApplication(exclude = {RedisRepositoriesAutoConfiguration.class})
还是报一样的错误
搜索 RepositoryFactorySupport,的实现
JpaRepositoryFactory,R2dbcRepositoryFactory,ReactiveRepositoryFactorySupport
是项目原有的,引入redis后出现 KeyValueRepositoryFactory,RedisRepositoryFactory
发现没法排除KeyValueRepositoryFactory ,暂时放弃这个info信息
解决对象依赖关系无法解析
No qualifying bean of type xxx available
核对了类的注解配置都没有问题
public interface xxxxx extends ReactiveSortingRepository<xxxx,String> {....
}
怀疑应该是r2dbc 和 redis 之间存在冲突 ,ReactiveCrudRepository 是一个通用接口,可以分配给 Redis 和 R2DBC
最后将继承的repository类换成 R2dbcRepository
public interface xxxxx extends R2dbcRepository<xxxx,String> {....
}
项目启动正常,后来校验了一下,原来的是这个对象里面使用的表已经不存在了。