在给SpringBoot项目配置Swagger时出现了一个很令人费解的Bug,这种因为版本不兼容出现的bug时真的让人蛋疼!!
首先介绍一下spring-boot-starter-parent是什么:(以2.6.2版本为例)
参考链接:https://blog.csdn.net/qq_37606901/article/details/105906112
org.springframework.boot spring-boot-starter-parent2.6.2
可以从源码中看到里面配置了一些基本的信息:
- 定义了 Java 编译版本,如上为 1.8。
- 使用 UTF-8 格式编码
- maven源文件和目标文件编译的版本
- 执行打包 *** 作的配置
- 自动化的资源过滤
- 自动化的插件配置
- spring-boot-starter-parent的parent是spring-boot-dependencies
再看看spring-boot-dependencies,发现里面定义了很多版本号,这个也就是pom文件里面有些依赖我们不必须写或者不需要写版本号的原因
然后说回重点:Swagger配置后出现的Bug!
当我在给SpringBoot项目中配置Swagger的依赖时Bug就出现了,以下是pom.xml文件中spring-boot-starter-parent与Swagger的配置信息
org.springframework.boot spring-boot-starter-parent2.6.2
io.springfox springfox-swagger22.9.2 io.springfox springfox-swagger-ui2.9.2
然后配置完后:启动SpringBoot出现以下Bug
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-12-29 23:10:47.911 ERROR 7124 --- [ main] o.s.boot.SpringApplication : Application run failed
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.14.jar:5.3.14]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:54) ~[spring-context-5.3.14.jar:5.3.14]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:356) ~[spring-context-5.3.14.jar:5.3.14]
at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_202]
乍一看是空指针异常! 但是项目中我什么代码都没有! 所以只可能是版本原因,将spring-boot-starter-parent的版本降低为2.3.4.RELEASE! 问题解决!
org.springframework.boot spring-boot-starter-parent2.3.4.RELEASE
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)