公司系统为了解决相关jar包漏洞,需要升级springboot,生产版本是2.3.9,计划升级到2.4.5;
发现升级后,配置文件不生效了,,我这边用的是bootstrap.yml配置的,maven是多模块的,其他模块里也有配置文件,配置文件里的文件有有的从nacos配置文件获取的,但是升级后造成所有的配置文件全部失效;之前只了解了,springboot2.4以后 ,配置加载有大的改动,但是没测试过,这次遇到了,百度了网上的解决方案,大部分都不行,,到官网找了下文档,如果要还是使用传统的配置引导,需要添加引导器才行
<!--升级到2.4.5后,bootstrap.yml 不加载了 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
官网介绍:
https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#config-first-bootstrap
2、
升级过程中,swagger不能使用,报的错误是: 503 SERVICE_UNAVAILABLE "Unable to find instance for xxxx";
原因是Spring Cloud2020移除了Ribbon,需要手动在pom里添加下依赖即可
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
3、添加spring-cloud-loadbalancer后,发现Feign无法使用,,报无法找到负载均衡的服务‘;经过研究发现需要去除nacos里的spring-cloud-starter-netflix-ribbon
<!-- nacos配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
4、集成sleuth无法获取tranId
传送门
https://blog.csdn.net/weixin_42697074/article/details/111238363
如果按照上面的网关tranid还是无效,可以手动添加:
@Autowired Tracer tracer; @Autowired CurrentTraceContext currentTraceContext;
String[] logs = new String[]{"响应报文:"+responseStr+" 耗时:"+Long.valueOf(endTime-start)+"ms"} ; WebFluxSleuthOperators.withSpanInScope(tracer, currentTraceContext, exchange, () -> log.info(logs[0]));