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);
}
}