使用springfox-swagger2进行接口文档输出
编写配置文件Swagger2Config
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket coreApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(adminApiInfo())
.groupName("adminApi")
.select()
.apis((""))
.paths(())
.build();
}
private ApiInfo adminApiInfo(){
return new ApiInfoBuilder()
.title("summy文档")
.description("summy参考文档")
.contact(new Contact("summy","",""))
.version("1.0")
.build();
}
}
controller操作
@RestController
@RequestMapping("/test")
@Api(value = "测试一下")
public class TestController {
@Autowired
private RestTemplate restTemplate;
@GetMapping("/userinfo")
@ApiOperation("获取用户列表信息")
public String getUserInfo(){
UserInfo[] UserInfos = ("http://test/userinfo/{page}/{pagesize}", UserInfo[].class, 0, 4);
List<UserInfo> UserInfoList = (UserInfos);
return "ok";
}
}
却出现报错:Failed to start bean ‘documentationPluginsBootstrapper‘
首先查看guava版本是否一致,经检查,项目guava和swagger的guava并不一致
这个时候在
<dependencyManagement></dependencyManagement>内添加
<dependency>
<groupId></groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
使得项目guava和swagger的guava一致
重新启动,发现还是报错,百度发现:因为Springfox使用的路径匹配是基于AntPathMatcher的,而Spring Boot 2.使用的是PathPatternMatcher。
而我使用的Spring Boot正好是2.6版本以上,所以
在里配置:-strategy=ANT_PATH_MATCHER。
或者yml配置:
mvc:
pathmatch:
matching-strategy: ANT_PATH_MATCHER
再次启动项目,成功运行
总结
项目启动时出现问题,很可能是版本不对应,其次也可能是新版本的一些配置做改动