背景:
使用阿里微服务包的是时候,启动不了,报错如下:
c924b3sdf74a20: com.pig4cloud.pigx.common.security.service.PigxClientDetailsServiceImpl
c924bsd3f74a20: ↓
c92sd4b3f74a20: org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration$EnableWebMvcConfiguration
c92sd4b3f74a20:┌─────┐
c924bsd3f74a20:| com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration (field private java.util.Optional com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration.sentinelWebInterceptorOptional)
c924b3sdf74a20:└─────┘
c924b3f74sda20:Action:
c924b3f7sd4a20: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.
一顿百度,发现并无啥用,只能自食其力了。。。
根据com.alibaba.cloud.sentinel.SentinelWebAutoConfiguration这个类,直接上源码,发现确实存在循环依赖的情况。。
解决办法
1.不加载这个配置类
,修改配置文件中将如下属性修改为false,
spring:
cloud:
sentinel:
enabled: false
2.升级依赖包版本
方便升级,升级没有太大工作量,建议升级到最新版本。
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>