Мне нужно быстро интегрировать swagger2 в устаревший весенний проект MVC без весенней загрузки.Поскольку существующая конфигурация Spring основана на XML, я сначала попытался настроить ее следующим образом:
<!-- Enables swgger ui-->
<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/"/>
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/>
<!-- Include a swagger configuration-->
<bean name="applicationSwaggerConfig" class="com.api.SwaggerConfig"/>
SwaggerConfig:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.ant("/rest/.*"))
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("API")
.description("API")
.build();
}
}
ResourceConfig:
@Configuration
@EnableWebMvc
public class SwaggerResourceConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
Я такжеУ меня есть сканирование контроллера (где у меня> 30 RequestMappings):
<context:component-scan base-package="com.api.controller" />
Когда я его запускаю, путей нет ни в ответе v2 / api-docs, ни в пользовательском интерфейсе swagger.Я также пытался сделать это только с помощью конфигурации Java - тот же результат.Googling не дает мне никаких указаний о том, как интегрировать Swagger в устаревший, не пружинный загрузочный проект, кроме приведенного выше кода.Есть идеи, что я делаю не так?