-
<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> {
-
-
....
-
}
项目启动正常,后来校验了一下,原来的是这个对象里面使用的表已经不存在了。
转载:https://blog.csdn.net/sinat_38314794/article/details/128117426
查看评论