Spring spring

Spring中文网站 > Spring Boot > Spring Boot怎么解决循环依赖问题 Spring Boot怎么解决跨域问题
Spring Boot怎么解决循环依赖问题 Spring Boot怎么解决跨域问题
发布时间:2026/03/12 16:10:49

品牌型号:联想拯救者R7000

系统:Windows 10专业版

软件版本:Spring Boot 4.0.2

我们在使用Spring Boot开发项目时,可能会遇到循环依赖和跨域问题。我们在编写代码注入对象时,可能不小心写出相互依赖注入的代码导致项目启动失败,或在前后端分离项目中因跨域被浏览器拦截,接口无法拿到数据,影响项目进度。本文将为大家介绍Spring Boot怎么解决循环依赖问题,Spring Boot怎么解决跨域问题的相关内容。

一、Spring Boot怎么解决循环依赖问题

循环依赖问题一般是因为代码设计不规范,比如在两个Service类中相互调用、相互注入,形成“A依赖B、B依赖A”的闭环,比如学生Service和班级Service,查询学生时需要关联班级,查询班级时需要关联学生Service,启动时就会报错“循环依赖”问题。下面我就为大家介绍一下Spring Boot解决循环依赖的步骤。

循环依赖
图1:循环依赖

1、配置文件开启循环依赖

该方法适合临时过渡,适合快速调试,无需修改代码,仅通过配置文件关闭Spring的循环依赖检查,即可解决循环依赖问题,保证服务能启动。首先打开项目的【resources-application.yml】配置文件,添加下图配置,保存后重启项目即可。

配置项
图2:配置项

2、使用@Lazy注解

Lazy注解表示当前类【延迟注入】,初始化时注入的是代理对象(半成品),只有第一次调用时才会初始化真实Bean,只需要在其中一个循环依赖的Service上添加@Lazy注解即可解决问题。

延迟加载
图3:延迟加载

如果要彻底解决循环依赖,就需要重构代码,我们可以提取公共逻辑到工具类,然后分别注入工具类使用,从而解决循环依赖问题,同时能提升代码质量和可维护性。

二、Spring Boot怎么解决跨域问题

我们在做前后端分离项目时,前端页面调用后端接口时,因浏览器同源策略限制,会被拦截,控制台报错跨域问题,下面就为大家介绍一下Spring Boot怎么解决跨域问题。

跨域
图4:跨域

1、全局跨域配置

创建配置类,统一配置所有接口的跨域规则,不需要每个接口单独配置,适合整个项目的接口都支持跨域。只需要创建CorsConfig配置类,添加如下代码,启动项目后,所有接口均可支持跨域,注意要替换为自己的前端地址。

跨域处理配置类
图5:跨域处理配置类

2、@CrossOrigin注解局部配置

如果只有个别接口需要跨域,可以直接在Controller上添加【@CrossOrigin】注解,同样可以实现解决跨域问题,注意要指定允许跨域的前端域名。

@CrossOrigin注解
图6:@CrossOrigin注解

三、总结

以上就是Spring Boot怎么解决循环依赖问题,Spring Boot怎么解决跨域问题的相关内容。如果遇到循环依赖的问题,本质上是代码设计不规范,我们可以通过配置、@Lazy注解,或者实现ApplicationContextAware重写其中的方法解决循环依赖问题。在前后端分离开发场景中,如果遇到了跨域问题,可以参考上文解决方案,希望对你有所帮助。

读者也访问过这里:
180 1563 6924