springclolud 启动类添加@EnableDiscoveryClient启动报错的问题
我们在创建一个springboot项目时,并在pom文件中添加了Eureka客户端的依赖,并在启动类中添加了@EnableDiscoveryClient的注解,如下图所示
这时候启动会报java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.init([Ljava/lang/Object;)V的错误
这是由于spring boot版本兼容性导致的,这是我们可以降低springboot的版本来解决
在降低springboot版本之后我们会发现,高版本的sprinboot创建的测试类会报错
我们可以做如下修改
1、删除高版本默认导入的org.junit.jupiter.api.Test类,重新导入org.junit.Test类
2、在类上添加注释@RunWith(SpringRunner.class)
3、将测试类和测试方法都修改为public
spring-data-redis版本升级2.2.2.RELEASE的问题
最近在做安全整改的问题,要求将项目中的spring-data-redis版本升级到1.8.23.RELEASE,2.2.2.RELEASE还必须只指定的版本,低,高的版本还不行。不然不让你发布版本,
心想升个版本应该简单的。
于是打印了项目的maven依赖树,命令如下:
输出结果:
版本是2.0.10.RELEASE的。并且spring-boot-starter-data-redis引入的。是于是直接指定版本就是.
输出依赖树,版本确实更新到了2.2.2.RELEASE版本
启动项目,输出了如下错误,找不到相应的类。又是一个版本不兼容的问题
通过上面的依赖项指定是通过spring-boot-starter-data-redis引入的spring-data-redis.项目中使用spring-boot版本2.0.5.RELEASE.
那就直接升级到升级到2.2.2.RELEASE试试。
打印依赖树后.从结果看,版本变高了到2.2.3.RELEASE。还是不符合相关的版本要求。心想把项目启动试试再说。
启动后项目报如下错误:
我去,又是个版本兼容性的问题。于是把springboot版本降低到2.2.1.RELEASE试试。不幸spring-data-redis输出的是2.2.1.RELEASE版本.
版本不符合,启动也报上面的错误。有点无语了,来来回回搞了1个多小时,加上明天要发布版本,使人容易产生焦虑,对自己能力怀疑。起来上个厕所,放松下。
回来后,想到在maven仓库包的索引去找找看[ ] 输入spring-data-redis。找到2.2.2.RELEASE的版本,找到Compile Dependencies(编译依赖).看了一遍
找到最后看到redis.clients » jedis (optional)版本的要求是3.1.0,于是想到上面都没有注意到jedis的版本。回过头去查查
jedis的版本是2.9.3,乖乖难怪。于是升级到3.1.0版本。启动项目后,终于看到没有报错了。这个时候才舒口气。项目启动不报错,对程序猿是多么幸福的一件事呀。
可是事情还没有完,通过上面操作项目启动了,可是spring-data-redis版本还是2.2.1的不符合要求。springboot在公司的仓库也没有匹配的版本。那就直接指定相应的版本2.2.2.RELEASE
试试,启动后项目一切正常。至此版本升级第一步终于完了。其他的功能需要在功能测试和使用中测试。
提交版本测试,发布系统后报jedis的版本只能是2.9.3, 3.5.1, 3.3.0这几个版本。好吧,那就升级半到3.3.0版本吧。启动后也正常,发布后,测试相关的功能后没啥问题,就提交测试了。
废话很多,但是确实是相应的过程。在日常的工作中,经常遇到版本升级的问题,特别是最近各种框架爆出的漏洞后。这样的工作经常有发生。说实在话,这样的工作费力不讨好。哎,继续干活吧!!!!
spring boot怎么从2.6降到2.3
springboot从2.6降到2.3的步骤如下:
第一步:修改jdbc驱动类,并将JDBC驱动类修改为com.mysql.cj.jdbc.Driver
,随后URL中添加时区信息serverTimezone=Asia/Shanghai;
第二步:将spring.servlet.multipart.max-request-size和spring.servlet.multipart.max-file-size的单位全部变成大写100MB;
第三步:添加依赖。
【SpringBoot】Project 'org.springframework.boot:spring-boot-starter-parent:2.4.5' not found
新建SpringBoot项目后,项目正常运行,但是pom.xml文件提示“Project 'org.springframework.boot:spring-boot-starter-parent:2.4.5' not found” 。
出现这种问题,是由于在当前的仓库中找不到指定的版本Jar包。
通常我们在本地会将远程仓库配置成阿里云镜像,如果pom.xml文件中指定的版本过高,可能阿里云镜像仓库中会没有,也就导致了该错误。降低版本即可。