Swagger 报错 Failed to start bean 'documentationPluginsBootstrapper'


错误原因: 可能是版本不匹配造成,我的 spring boot 是 2.6.0 而 spring cloud 版本需要这样对照, 不能进行降级, 所以这样配置.

pom依赖

 
	 org.springframework.boot
	 spring-boot-starter-parent
	 2.6.0
	  


	
		io.springfox
		springfox-swagger2
		2.9.2
	
	
		io.springfox
		springfox-swagger-ui
		2.9.2
	
	
		com.google.guava
		guava
		25.1-jre
	

启动类:

@SpringBootApplication
@EnableDiscoveryClient
@EnableWebMvc // 需要此注解
public class UploadServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(UploadServiceApplication.class, args);
    }

}

这样配置可能会造成 swagger 的 ui 页面无法打开所以需要下面配置,这个是在 https://blog.csdn.net/lovequanquqn/article/details/90705721 博客中看到的

import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebMvcConfigurer extends WebMvcConfigurerAdapter {

    /**
     * 访问静态资源
     * */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        /**
         * SpringBoot自动配置本身并不会把/swagger-ui.html
         * 这个路径映射到对应的目录META-INF/resources/下面
         * 采用WebMvcConfigurerAdapter将swagger的静态文件进行发布;
         */
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
        //将所有/static/** 访问都映射到classpath:/static/ 目录下
        registry.addResourceHandler("/static/**").addResourceLocations(ResourceUtils.CLASSPATH_URL_PREFIX +"/static/");
        super.addResourceHandlers(registry);
    }
}