spring-boot-starter-data-redis 引发的一系列惨案

        <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> {

....
}

项目启动正常,后来校验了一下,原来的是这个对象里面使用的表已经不存在了。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值