Swagger 2.9.2版本不支援Webflux
然後查閱資料Webflux需要使用Swagger3.0
我找了好久資料
好多配置都沒有成功
最後一不小心成功了,發現其實并不需要多少配置
我們直接上配置
gradle
compile group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'
maven
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
直接導入就能使用了
然後應用主類增加注解@EnableOpenApi,删除之前版本的SwaggerConfig.java,啟動項目,通路位址:http://localhost:8200/swagger-ui/index.html,注意2.x版本中通路的位址的為http://localhost:8200/swagger-ui.html
2.配置資源目錄
注意:這個類和swagger沒有關系,是配置跨域的
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
//這個和swagger沒有關系,是配置跨域的
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "POST","DELETE","OPTIONS")
.allowCredentials(false).maxAge(3600);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.
addResourceHandler("/swagger-ui/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/")
.resourceChain(false);
super.addResourceHandlers(registry);
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/swagger-ui/")
.setViewName("forward:/swagger-ui/index.html");
}
}
預設是這樣的,不影響你使用

預設是以上界面,當然之前的配置還可以繼續配置,隻不過是可選配置,那我們繼續加上
@Configuration
public class SwaggerConfiguration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.aiprose.mbp.controller"))
// .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboot mybatis plus架構demo")
.description("springboot mybatis plus架構demo")
.contact(new Contact("nelson", "https://www.aiprose.com/", "[email protected]"))
.version("1.0")
.build();
}
}
原文位址
https://www.aiprose.com/blog/127