因为spring-boot2.5之后的版本解决了循环依赖的问题,相应的依赖插件必须更新到最新不存在循环依赖的代码版本,否则启动springboot就会报错,如以下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>17</java.version>
<shiro.version>1.3.1</shiro.version>
</properties>
<dependencies>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.1</version> <!--必须是这个版本,其他版本有相互依赖的类,例如A类依赖B类,B类又引用了A类 -->
</dependency>
</dependencies>
如果使用的不是com.github.pagehelper的1.4.1版本,即使同年 的1.4.0版本启动都会报错,报错信息如下:
Action:
Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true.
不鼓励依赖循环引用,默认情况下禁止使用循环引用。更新应用程序以删除bean之间的依赖循环。作为最后一种手段,可能通过设置弹簧来自动中断循环。主要的允许循环引用为true。
虽然也可以在配置文件中设置允许循环引用,但既然默认是不允许循环引用还是不改动为好