上 我服了!SpringBoot升级后这服务我一个星期都没跑起来!( 二 )

解决方案:手动引入新的依赖 。
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId><version>2.2.10.RELEASE</version> </dependency>8. bootstrap.properties/yml 配置文件不生效根据 Spring Cloud 配置方式,发现很多业务的本地配置配置在 bootstrap.properties中,新版本默认会不生效 。
老版本中 spring.cloud.bootstrap.enabled 默认为 true 。

上 我服了!SpringBoot升级后这服务我一个星期都没跑起来!

文章插图
新版本改过之后默认是false了,导致一堆配置不生效 。
上 我服了!SpringBoot升级后这服务我一个星期都没跑起来!

文章插图

上 我服了!SpringBoot升级后这服务我一个星期都没跑起来!

文章插图
解决方案:手动设置spring.cloud.bootstrap.enabled=true
9. spring-cloud-netflix-eureka-client中移除ribbon和hystrix依赖和第七个问题差不多,spring-cloud-netflix-eureka-client 移除了 ribbon和hystrix依赖,所以客户端默认不会有ribbon这些东西了 。
解决方案:手动引入新的依赖 。
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId><version>2.2.10.RELEASE</version> </dependency>10. spring-cloud-starter-alibaba-sentinel版本不兼容spring-cloud-starter-alibaba-sentinel 使用的是 2.1.3.RELEASE,和新版本存在兼容性问题,导致无法启动,存在循环依赖问题 。
报错信息:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration': Unsatisfied dependency expressed through method 'setConfigurers' parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration': Unsatisfied dependency expressed through field 'sentinelWebInterceptorOptional'; nested exception is org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration': Requested bean is currently in creation: Is there an unresolvable circular reference?解决方案:升级为当前 Spring Cloud 一样的版本 。
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>2021.0.4.0</version> </dependency>11. commons-pool2兼容性报错spring-boot-autoconfigure 2.7.5版本中 JedisConnectionConfiguration 报错,原因在于我们有的业务代码依赖中自己指定了 commons-pool2的版本 。
上 我服了!SpringBoot升级后这服务我一个星期都没跑起来!

文章插图
Description:An attempt was made to call a method that does not exist. The attempt was made from the following location:org.springframework.boot.autoconfigure.data.redis.JedisConnectionConfiguration.jedisPoolConfig(JedisConnectionConfiguration.java:114)The following method did not exist:redis.clients.jedis.JedisPoolConfig.setMaxWait(Ljava/time/Duration;)VAction:Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.boot.autoconfigure.data.redis.JedisConnectionConfiguration and redis.clients.jedis.JedisPoolConfigGit Issue :https://github.com/spring-projects/spring-boot/issues/27642
看这个时间很早就修正了,commons-pool2 在2.8.1版本后丢失了一些方法 。
解决方案:自己不要指定该包版本默认会使用 spring boot 的最新依赖,或者手动指定最新版本2.11.1 。

经验总结扩展阅读