我目前正在使用Springfox Swagger通过Java配置记录我的spring boot应用程序。我的API在整个扫描过程中的启动时间约为75秒(如果没有Springfox,最初是20秒)。我目前只需要 Controller 信息,而无需任何型号信息。有没有一种方法可以从启动过程中排除模型扫描,以使我的API更快启动?还有其他方法可以使其更快吗?我正在使用swagger 1.2
最佳答案
有一种方法可以防止Sprinfox框架生成Swagger模型或指定的忽略类型的参数信息。您必须在ignoredParameterTypes
或SwaggerSpringMvcPlugin
类中使用方法Docket
使其知道要忽略的类型。
Swagger 1例子
这是带有忽略类型的Swagger 1 Java配置示例。这肯定对我的应用程序启动时间产生了影响。
@Configuration
@EnableSwagger
public class SwaggerConfiguration {
@Autowired
private SpringSwaggerConfig springSwaggerConfig;
@Bean
public SwaggerSpringMvcPlugin api() {
Class[] clazz = {MyClassA.class, MyClassB.class};
return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)
.apiInfo(apiInfo())
...
.ignoredParameterTypes(clazz);
}
private ApiInfo apiInfo() {
...
}
}
Swagger 2示例
这是带有忽略类型的Swagger 2 Java配置示例,
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket api() {
Class[] clazz = {MyClassA.class, MyClassB.class};
return new Docket(DocumentationType.SWAGGER_2)
.groupName("my-group")
.select()
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo())
.ignoredParameterTypes(clazz);
}
private ApiInfo apiInfo() {
...
}
}
关于spring - 有什么方法可以阻止springfox Swagger 地扫描模型类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46651381/