spring-data-redis版本冲突引发的问题
1.昨天在maven build项目中发现有个问题,如下所示
java.lang.NoSuchMethodError: org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource.<init>(Lorg/springframework/core/type/AnnotationMetadata;Ljava/lang/Class;Lorg/springframework/core/io/ResourceLoader;Lorg/springframework/core/env/Environment;Lorg/springframework/beans/factory/support/BeanDefinitionRegistry;)Vat org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport$1.<init>(AbstractRepositoryConfigurationSourceSupport.java:68)at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.getConfigurationSource(AbstractRepositoryConfigurationSourceSupport.java:67)at org.springframework.boot.autoconfigure.data.AbstractRepositoryConfigurationSourceSupport.registerBeanDefinitions(AbstractRepositoryConfigurationSourceSupport.java:58)at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:352)at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:143)at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:116)at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:320)at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:270)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:93)at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:686)at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:524)at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)at com.ppdai.realtime.datachannel.mq.MessageQueueApp.main(MessageQueueApp.java:20)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.springframework.boot.maven.AbstractRunMojo$LaunchRunner.run(AbstractRunMojo.java:558)at java.lang.Thread.run(Thread.java:748)
原因分析:
https://github.com/spring-projects/spring-boot/commit/5a4ef50ef1d71f1a42edaee309b3e04fb754b13a
因为spring boot和sping-data-redis版本不匹配导致的,spring-data-redis使用 1.8.1.RELEASE版本 依赖
<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-keyvalue</artifactId><version>1.2.1.RELEAS</version> </dependency>
依赖
<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>1.13.1.RELEASE</version> </dependency>
如下图所示 这是spring-boot 1.5.9.Release版本的函数
而spring-data-commons中构造函数如下
二种解决方案,
第一 将spring-boot-autoconfig版本从1.5.9.RELEASE降低为1.5.2
或者将spring-data-commons版本从1.13.1.RELEASE升到1.13.7.RELEASE
完结。。
另外附上一个问题
Caused by: java.lang.ClassNotFoundException: org.springframework.data.repository.config.RepositoryConfigurationSource
Caused by: java.lang.ClassNotFoundException: org.springframework.data.repository.config.RepositoryConfigurationSourceat java.net.URLClassLoader.findClass (URLClassLoader.java:381)at java.lang.ClassLoader.loadClass (ClassLoader.java:424)at java.lang.ClassLoader.loadClass (ClassLoader.java:357)at java.lang.Class.getDeclaredConstructors0 (Native Method)at java.lang.Class.privateGetDeclaredConstructors (Class.java:2671)at java.lang.Class.getConstructor0 (Class.java:3075)at java.lang.Class.getDeclaredConstructor (Class.java:2178)at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:102)at org.springframework.beans.BeanUtils.instantiateClass (BeanUtils.java:125)at org.springframework.context.annotation.ConfigurationClassParser.processImports (ConfigurationClassParser.java:585)at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass (ConfigurationClassParser.java:293)at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass (ConfigurationClassParser.java:244)at org.springframework.context.annotation.ConfigurationClassParser.processImports (ConfigurationClassParser.java:595)at org.springframework.context.annotation.ConfigurationClassParser.processDeferredImportSelectors (ConfigurationClassParser.java:538)at org.springframework.context.annotation.ConfigurationClassParser.parse (ConfigurationClassParser.java:184)at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions (ConfigurationClassPostProcessor.java:308)at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry (ConfigurationClassPostProcessor.java:228)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors (PostProcessorRegistrationDelegate.java:270)at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors (PostProcessorRegistrationDelegate.java:93)at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors (AbstractApplicationContext.java:686)at org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:524)at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:122)at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:693)at org.springframework.boot.SpringApplication.refreshContext (SpringApplication.java:360)at org.springframework.boot.SpringApplication.run (SpringApplication.java:303)
原因
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration]; nested exception is java.lang.NoClassDefFoundError: org/springframework/data/repository/config/RepositoryConfigurationSource
因为spring-boot autoconfig需要RedisRepositoriesAutoConfiguration 这个类找不到,解决方案
添加依赖
<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-commons</artifactId><version>1.13.7.RELEASE</version> </dependency>
因为spring
转载于:https://www.cnblogs.com/zhengwangzw/p/9956874.html
spring-data-redis版本冲突引发的问题相关推荐
- spring data redis的使用jar包版本冲突问题
spring data redis 与spring 版本之间会有不兼容,要求spring 最低版本为4.2.6,这里推荐的一个版本 spring 4.3.2 spring data redis 1. ...
- 使用Spring Data Redis操作Redis(集群版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
- Spring Boot使用Spring Data Redis操作Redis(单机/集群)
说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...
- Spring data redis 异常
2019独角兽企业重金招聘Python工程师标准>>> spring 集成 spring-data-redis 版本: spring低版本 + spring-data-redis 高 ...
- Redis - Spring Data Redis 操作 Jedis 、Lettuce 、 Redisson
文章目录 官网 Jedis VS Lettuce Jedis Code POM依赖 配置文件 配置类 单元测试 Lettuce Code Redisson Code POM依赖 配置文件 配置类 单元 ...
- Java Spring Data Redis实战与配置参数详解 application.properties...
Redis作为开源分布式高并发缓存,使用范围非常广泛,主流互联网公司几乎都在使用. Java Spring Boot 2.0实战开发Redis缓存可以参考下面的步骤,Redis安装可以直接使用Linu ...
- Spring Data Redis—Pub/Sub(附Web项目源码)
一.发布和订阅机制 当一个客户端通过 PUBLISH 命令向订阅者发送信息的时候,我们称这个客户端为发布者(publisher). 而当一个客户端使用 SUBSCRIBE 或者 PSUBSCRIBE ...
- Spring Data Redis:Sentinel的高可用性
1.概述 为了使Redis具有高可用性,我们可以使用Spring Data Redis对Redis Sentinel的支持. 借助Sentinel,我们可以创建自动抵御某些故障的Redis部署. Re ...
- 具有Java 8支持的Spring Framework 4.0.3和Spring Data Redis 1.2.1
Spring Framework 4.0.3 正如Spring社区宣布的那样,Spring Framework 4.0.3现在可用. 它是上周Java 8发布后框架的第一个版本,因此它是使用OpenJ ...
- Spring Data Redis 实践
前言 Spring Data Redis是Spring Data大家族的一部分,提供了基于spring应用的简易配置与redis服务访问,它为存储与交互提供了低级(low-level)和高级的(hig ...
最新文章
- Python 学习博客
- python3 学习使用大纲梳理
- docker 保存 环境持久化_18、docker的持久化存储和数据共享
- List的方法和属性 方法或属性 作用
- 转:javascript方法--bind()
- 小心使用IOCP完成端口
- 如何在github上发起一个pull request,如何贡献代码,参与开源项目
- curve函数 roc_sklearn-roc_curve
- C++:在堆上创建对象,还是在栈上?
- SCI论文写作的时态用法
- 洛谷P4824 [USACO15FEB] Censoring S 题解
- Android Studio通过模拟器联网
- 什么是 java 序列化?什么情况下需要序列化?
- P4017 最大食物链计数
- 云端部署 vs 本地化部署
- Arcpy基础入门-2、arcpy的批处理功能
- [Jquery]实现三个盒子两两交换的考眼力游戏
- 古诗词的直译和韵译有什么区别?看看就知道了
- 解决ssh: Could not resolve hostname ***: nodename nor servname provided, or not known报错
- python程序怎么运行结果
热门文章
- cfb为什么不需要填充_为什么很多高中生数学成绩不理想,需要补课?因为不熟练啊!...
- 下载python步骤_下载及安装Python详细步骤
- springboot 拦截器 日志_跟武哥一起学习Spring Boot,一份全面详细的学习教程
- java访问控制度_菜鸡的Java笔记 - java 访问控制权限
- phpcms后台系统怎么去掉html目录_电子笔记本 | 好记性胜过烂笔头?基于python3的知识管理系统...
- python3生成随机数_Python3.3中如何产生伪随机数
- C++ :vector的使用
- linux中anconda python集成环境配置
- 全球及中国实心轴编码器行业前景趋势与运营动向分析报告2022版
- Android10崩溃,华为荣耀Android10崩溃