配置中心启动直接报错
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency>
原因:springcloud2020中bootstrap默认被禁用,同时spring.config.import加入了对解密的支持。对于Config Client、Consul、Vault和Zookeeper的配置导入,如果需要使用原来的配置引导功能,需要引入org.springframework.cloud:spring-cloud-starter-bootstrap依赖。
这个引入之后,启动还是报错
然后再继续面向百度编程,还是没有解决,后面发现启动报错NoClassDefFoundError和ClassNotFoundException
NoClassDefFoundError表明一个类在编译时是能找到的,但是在运行时找不到了。 ClassNotFoundException表示在运行时尝试加载类时找不到这个类。它不会在编译时去查找。
找不到这个类ConfigDataMissingEnvironmentPostProcessor,那就全局搜索一波:
没找到,然后又根据org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor去查看这个依赖包里到底有没有,还真没有,那就是这个包出问题了
我引入spring-cloud 版本是2021.0.5
它里面的版本是spring-cloud-commons.version 3.1.5
那就是我们版本的问题,
全局搜索一下
发现引入了3.0.1所以导致网关启动失败
Spring Cloud Commons模块设计的目的,Spring Cloud Commons模块是为了对微服务中的服务注册与发现、负载均衡、熔断器等功能提供一个抽象层代码,这个抽象层与具体的实现无关。这样这些功能具体的实现上可以采用不同的技术去实现,并可以做到在使用时灵活的更换。
找到问题,我直接收删除我引入的spring-cloud-commons.version ,让其使用spring-cloud引入的commons的版本,也可以直接修改自己引入的版本为3.1.5
因为我们是强制子模块使用与父模块完全一致的版本号,所以我这边直接删除
org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor 这个也存在了