SpringBoot——升级SpringBoot2.7.X相关问

2023-03-16  本文已影响0人  小波同学

SpringBoot 2.2.5 升级到 2.7.7
SpringCloudHoxton.SR10升级到2021.0.5
SpringCloudAlibaba2.2.1.RELEASE升级到2021.0.4.0

<!-- spring-boot-dependencies 管理了改以来版本,正常不需要指定版本 -->
 <dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
</dependency>

添加依赖

<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
ERROR | com.alibaba.nacos.client.Worker | com.alibaba.nacos.common.remote.client | Send request fail, request …

确保部署了对应版本的Nacos服务端,我部署的版本为nacos-2.2.0
Nacos 配置文件结构发生变化
修改前:


修改后:


A类引用了B类,B类引用了A类。

在Spring 2.6之前会自动类解决循环依赖问题,升级之后只能手动解决

去除循环依赖的逻辑
配置文件配置Spring.main.allow-circular-references=true
主启动类

public static void main(String[] args) {
    SpringApplication s = new SpringApplication(xx.class);
    s.setAllowCircularReferences(Boolean.TRUE);//加入的参数
    s.run(args);
}

或者注入添加@Lazy注解

@Resource
@Lazy
private UserService userService;
spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

如果是gateway报错可以修改配置文件:

spring:
  cloud:
    gateway:
      default-filters:
        - DedupeResponseHeader=Access-Control-Allow-Origin, RETAIN_UNIQUE
      globalcors:
        cors-configurations:
          '[/**]':
            # 允许携带认证信息
            allowCredentials: true
            # 允许跨域的源(网站域名/ip),设置*为全部1
            # allowedOrigins: "*"
            allowedOriginPatterns: "*"
            # 允许跨域的method, 默认为GET和OPTIONS,设置*为全部
            allowedMethods: "*"
            # 允许跨域请求里的head字段,设置*为全部
            allowedHeaders: "*"
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

参考:
https://blog.csdn.net/qq_40104261/article/details/128674498

上一篇下一篇

猜你喜欢

热点阅读