品牌型号:联想拯救者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、配置文件开启循环依赖
该方法适合临时过渡,适合快速调试,无需修改代码,仅通过配置文件关闭Spring的循环依赖检查,即可解决循环依赖问题,保证服务能启动。首先打开项目的【resources-application.yml】配置文件,添加下图配置,保存后重启项目即可。

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

如果要彻底解决循环依赖,就需要重构代码,我们可以提取公共逻辑到工具类,然后分别注入工具类使用,从而解决循环依赖问题,同时能提升代码质量和可维护性。
二、Spring Boot怎么解决跨域问题
我们在做前后端分离项目时,前端页面调用后端接口时,因浏览器同源策略限制,会被拦截,控制台报错跨域问题,下面就为大家介绍一下Spring Boot怎么解决跨域问题。

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

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

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