今天切换springcurity框架时,出现了bug
org.springframework.context.ApplicationContextException: Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:181) ~[spring-context-5.3.23.jar:5.3.23] at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.23.jar:5.3.23] at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.23.jar:5.3.23] at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_131]
主要原因就是版本不匹配
因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.6.X使用的是PathPatternMatcher
解决:在application.properties里配置
spring.mvc.pathmatch.matching-strategy=ANT_PATH_MATCHER
如果还是这个报错,就证明了其他依赖了springboot的版本也大于2.6.x,我们配置不了配置文件,
所以我们可以更换版本,注意springcloud版本也要换不然对应不上
<spring-boot.version>2.3.7.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
这个版本还要把loadbalancer注释掉
<!-- <!–解决:Did you forget to include spring-cloud-starter-loadbalancer?–>--> <!-- <dependency>--> <!-- <groupId>org.springframework.cloud</groupId>--> <!-- <artifactId>spring-cloud-loadbalancer</artifactId>--> <!-- <version>3.1.6</version>--> <!-- </dependency>-->
或者换成对应版本
<!--解决:Did you forget to include spring-cloud-starter-loadbalancer?-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>${spring-cloud-alibaba.version}</version>
</dependency>


