赞
踩
- <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> {
-
- ....
- }
项目启动正常,后来校验了一下,原来的是这个对象里面使用的表已经不存在了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。