springboot与dubbo的版本匹配问题

 更新时间:2021年10月13日 11:45:26   作者:EmineWang  
这篇文章主要介绍了springboot与dubbo的版本匹配问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot与dubbo的版本匹配

官方链接

参考:

在这里插入图片描述

项目里原始版本

  • springboot:2.1.6.RELEASE
  • dubbo-spring-boot-starter : 0.2.1.RELEASE
  • dubbo: 2.6.5

上面这么写是可以正常运行的。但是当把dubbo升级到2.6.7时候,却报错了,异常如下:

升级到2.6.7后错误日志

Description:

The bean 'dubboConfigConfiguration.Single', defined in null, could not be registered. A bean with that name has already been defined in null and overriding is disabled.

Action:

Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true

后来经过尝试,把springboot的版本下调到2.0.9时候,项目可以正常启动。

所以得到下面这个版本匹配的结论:

2.7版本以下的,使用的是alibaba目录下的jar,

springbootdubbo-springdubbo注1.x0.1.2.RELEASE2.6.5+2.6.6以上的dubbo需要配置netty-alljar包2.0.0~2.0.90.2.1.RELEASE2.6.5/2.6.6/2.6.72.1.x0.2.1.RELEASE2.6.5 /2.7.1

2.7版本以上的,用apache目录下面的jar,dubbo-spring和dubbo都使用apache下面的版本,统一使用2.7即可,springboot也可以用2.1.x以上

springboot+dubbo版本对应关系

背景

springboot 和 dubbo 在 pom.xml 中的版本是有对应关系的,如果配置的依赖不按照对应关系配置的话项目启动就会报错,报错的信息如下所示:

java.lang.IllegalStateException: Cannot load configuration class: com.alibaba.boot.dubbo.autoconfigure.DubboAutoConfiguration
at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:403) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:249) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:283) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:127) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:687) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:525) ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE]
at com.ProviderApplication.main(ProviderApplication.java:13) [classes/:na]

对应关系

我在项目中使用的阿里巴巴的 dubbo-spring-boot-starter 版本是 0.2.0 ,maven 依赖如下所示:

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>0.2.0</version>
</dependency>

则对应的使用 spring-boot-starter-parent 的版本号是 2.1.6.RELEASE ,这样配置依赖的话,项目启动是没有问题的。

Dubbo Spring Boot Dubbo Spring Boot
0.2.1.RELEASE 2.6.5+ 2.x
0.1.2.RELEASE 2.6.5+ 1.x

可以在 https://mvnrepository.com/artifact/com.alibaba.boot/dubbo-spring-boot-starter 里面查看 dubbo 的所有版本信息。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • SSH框架实现表单上传图片实例代码

    SSH框架实现表单上传图片实例代码

    本篇文章主要介绍了SSH框架实现表单上传图片实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • spring+hibernate 两种整合方式配置文件的方法

    spring+hibernate 两种整合方式配置文件的方法

    本篇文章主要介绍了spring+hibernate 两种整合方式配置文件的方法,主要有两种方式 1、注解方式 2、xml方式实现,有兴趣的可以了解一下。
    2017-04-04
  • Java中的回调

    Java中的回调

    这篇文章主要介绍了Java中回调的相关资料,帮助大家更好的理解和学习java,感兴趣的朋友可以了解下
    2020-08-08
  • springboot整合redisson实现延时队列(附仓库地址)

    springboot整合redisson实现延时队列(附仓库地址)

    延时队列用于管理需要定时执行的任务,对于大数据量和高实时性需求,使用延时队列比定时扫库更高效,Redisson提供一种高效的延时队列实现方式,本文就来详细的介绍一下,感兴趣都可以了解学习
    2024-10-10
  • IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在

    IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在

    这篇文章主要介绍了IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Struts2 自定义下拉框Tag标签

    Struts2 自定义下拉框Tag标签

    这篇文章主要介绍了Struts2 自定义下拉框Tag标签的相关资料,需要的朋友可以参考下
    2016-02-02
  • 浅谈Spring 重定向指南

    浅谈Spring 重定向指南

    本篇文章主要介绍了浅谈Spring 重定向指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 树莓派.GPRS.短信接收器

    树莓派.GPRS.短信接收器

    这篇文章主要介绍了树莓派.GPRS.短信接收器的相关知识,需要的朋友可以参考下
    2017-10-10
  • Quartz作业调度基本使用详解

    Quartz作业调度基本使用详解

    这篇文章主要为大家介绍了Quartz作业调度基本使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • 深入分析Java异常

    深入分析Java异常

    本篇文章给大家详细分享了关于Java异常的相关知识点,对此有需要的朋友跟着学习下吧。
    2018-05-05

最新评论