springboot项目之相互依赖报错问题(基于idea)

目录
  • springboot相互依赖报错
    • 解决方法
  • springboot项目处理循环依赖问题(circularreference)
    • 解决方法

springboot相互依赖报错

昨天在辛劳的进行代码搬运工作的时候,发现springboot项目的一个新建模块中service层的各个注解都变成了黑色,正常情况下应该是黄色的。

我觉得可能是一些springboot的相关组件没有引入pom文件

所以我对照着原来的模块直接复制了一些依赖

就出现了一个新大陆的报错

Error:java: Annotation processing is not supported for module cycles. Please ensure that all modules from cycle [core,dao,service] are excluded from annotation processing .

经过反复咀嚼各大网站大佬的不食烟火的回答

我确定了

这,就是一个叫做“相互依赖”的错误,称之为依赖死循环

解决方法

打开相互依赖的模块的pom,删掉其中一个对另一个的依赖就行了

那怎么更明确的知道是哪几个模块相互依赖了呢

1.

然后看到右边有红色的包依赖报错

2.红色框的就是两个模块之间互相依赖 、处理模块之间的依赖关系(模块之间不能有依赖)

3.右键不想不依赖的包选中open module setting这个选项

springboot项目处理循环依赖问题(circular reference)

springBoot启动失败,报错BeanCurrentlyInCreationException

org.springframework.beans.factory.BeanCurrentlyInCreationException:
Error creating bean with name 'AxxxxService': 
Bean with name 'BxxxxService' 
has been injected into other beans [CxxxxService] in its raw version as part of a circular reference, 
but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - 
consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.

解决方法

  • 找到中括号中的Service: CxxxxService
  • 在CxxxxService中找到 BxxxxService(离得最近的,如果看不懂英文的话)的声明
  • 在BxxxService的声明上加注解 @Lazy
  • 注: 如果中括号中不止一个CxxxxService,每个都要这样做,加上@Lazy

悔恨

  • 我没有一开始就百度,解决方案,而是自以为是地组装新的Service类
  • 今天遇到一个中括号里有多个类的,要改的多了,就搜索一下人家的解决方案,流下了悔恨的眼泪
  • 现在才把代码调整回去了,已经晚上10点多了
  • 本来想试试revert, 过去太久,太多commit了,害怕了,退缩了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 项目依赖Springboot jar失败解决方案

    1.原因 因为springboot-maven-plugin打包的第一级目录为Boot-INF,无法引用 2.解决 不能使用springboot项目自带的打包插件进行打包 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </p

  • spring boot项目导入依赖后代码报错问题的解决方法

    代码截图如图所示(由于本人问题已经解决,没来得及截图,所以在网上找了一张图片) ​ 针对图中所示的情况,可参考一下解决方案: 方案一: 在 Idea 导入 Spring Boot 项目代码报红,试过更改maven配置,maven clean操作,执行-U idea:idea等命令还是提示:cannot resolve symbol 'SpringBootApplication' .我最终解决方法是导入要导入项目的pom.xml文件,而不是导入现有项目解决.选择pom.xml后会弹出提示框,选择a

  • spring boot创建项目包依赖问题的解决

    今天捣腾了spring boot,按照官网案例,缺发现本地无论包依赖出现问题,并且无法启动,一整天在踩maven的坑,记录下这个血的教训. 1.spring-core依赖包问题 运行application,发现缺少依赖的spring-core包: 但是spring boot的包都是通过parent的starter引入的,通过mvn denpendency:tree查看项目的jar依赖信息:  发现spring-core依赖包是存在的,但是为什么运行的时候回报错找不到类. 倒腾了一个下午试过各种方

  • springboot项目之相互依赖报错问题(基于idea)

    目录 springboot相互依赖报错 解决方法 springboot项目处理循环依赖问题(circularreference) 解决方法 springboot相互依赖报错 昨天在辛劳的进行代码搬运工作的时候,发现springboot项目的一个新建模块中service层的各个注解都变成了黑色,正常情况下应该是黄色的. 我觉得可能是一些springboot的相关组件没有引入pom文件 所以我对照着原来的模块直接复制了一些依赖 就出现了一个新大陆的报错 Error:java: Annotation

  • SpringBoot启动访问localhost:8080报错404的解决操作

    1.确定本地网络是通的: 2.确定SpringBootq启动后是不报错的 3.查看是不是自己在配置文件中加入了项目路径: 如果加入了项目路径的话,直接访问localhost:8080是不会到欢迎页面的,需要加上项目路径才能访问到欢迎页面,即localhost:8080/sell 补充知识:SpringBoot的web项目启动起来无法访问,访问时还是提示无法访问该网站 有时候可能是因为你的pom中导入了太多的依赖,一些依赖之间可能存在冲突导致项目未完全启动而无法访问显示:无法访问该网站 以上这篇S

  • 导入maven项目各个注解均报错的解决方案

    目录 导入maven项目各个注解均报错 所遇问题 解决方案 新导入maven项目注解爆红,所有依赖包无法导入 经过反复测试终于发现原因所在!!! 解决步骤如下 导入maven项目各个注解均报错 所遇问题 导入maven项目各个注解均报错了 思考1: 这个项目使用了springboot;spring是个"大容器",所有对象的创建和管理都交给了它, (SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置

  • 关于springboot集成swagger3时spring-plugin-core报错的问题

    springboot集成knife4j的时候3.0.2版本出现了以下问题: An attempt was made to call a method that does not exist. The attempt was made from the following location:       springfox.documentation.schema.plugins.SchemaPluginsManager.viewProvider(SchemaPluginsManager.java

  • 解决vue 项目引入字体图标报错、不显示等问题

    问题:在项目开发时使用字体图标,发现两个问题: 1.出现报错: 解决方法为:把字体引入方式改为绝对路径 2.不报错,但是不显示图标字体,出现方框 原因可能有两种: ①没在用到的地方引入字体的样式文件②你使用的是后缀名为 .styl 文件 ①的解决办法是在用到的地方引入字体的样式文件(全局引入的话需要从app.vue里引入) ②这个就是我遇到的问题,浪费了我好几分钟!!!微笑 解决办法是把font.styl改为font.css 记得在用到图标的地方引入 问题原理后续再写. 以上这篇解决vue 项目

  • SpringBoot项目没有把依赖的jar包一起打包的问题解决

    这篇文章主要介绍了SpringBoot项目没有把依赖的jar包一起打包的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一般未一起打包是因为pom不是继承自spring-boot-starter-parent导致的需要在pom.xml文件写入以下配置 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId>

  • 解决springboot yml配置 logging.level 报错问题

    如下所示: logging: config: classpath:spring-logback.xml pattern: console: "%d - %msg%n" level: info 直接写 level: info 会报错: org.springframework.boot.context.properties.bind.BindException: Failed to bind properties under 'logging.level' to java.util.Map

  • 解决安装vs2019后原vs2017项目无法编译各种报错的问题

    MFC项目在vs2017编译正常无报错,但是升级vs2019后一打开项目就报如下错误. 项目在vs2017下使用的平台工具集是Visual Studio 2017-Windows XP(x141_xp)(虽然标着已弃用,但是还是可以安装的) 安装原项目使用的平台工具集后问题解决.vs2019很多组件需要自己选择勾选后才安装. 1. 错误描述: 2. 解决办法: 1). 平台工具集安装 工具(T)→获取工具和功能(T), 打开Visual Studio Installer,选择修改→单个组件,勾选

  • springboot注入yml配置文件 list报错的解决方案

    目录 springboot注入yml配置文件 list报错 注入list的正确方法 springboot yml 配置文件注入Map,List springboot注入yml配置文件 list报错 springboot中yml配置注入一般使用@Value注解可注入String类型数据,比如: @Value("${config}") String stringConfig; 即可注入属性,而注入list使用此方法则会报错提示Could not resolve placeholder xx

  • SpringBoot导入mail依赖报错问题解决

    报错:Missing artifact org.springframework.boot:spring-boot-starter-mail:jar:2.0.3 之前导入log4j时报的一样的错误,最后没解决,用的slf4j,这次又遇到一样的问题,不能坐视不管了,因为我必须要用到邮件发送. 百度各种信息,终于被我找到了... 解决步骤如下: 一.添加mail依赖,报错Missing artifact org.springframework.boot:spring-boot-starter-mail

随机推荐