Каков наилучший способ подключить заглушки сервера, созданные Swagger Codegen в существующее приложение Spring MVC?
Я начинаю, пытаясь использовать образец petstore stubs.
Моя конфигурация Spring находится в Java и выглядит следующим образом:
public class SpringConfigurationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ApplicationContext.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { WebMvcContext.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
// ... onStartup etc.
}
WebMvcConfigurationSupport:
@Configuration
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ)
@PropertySource({ "classpath:config.properties", "file:${CONFIGDIR}/config.properties" })
@ComponentScan(useDefaultFilters = false, basePackages = { "com.yyy", "com.xxx" }, includeFilters = { @Filter(type = FilterType.ANNOTATION, value = Controller.class) })
public class WebMvcContext extends WebMvcConfigurationSupport {
// ... beans etc.
}
ApplicationContext:
@Configuration
@EnableAsync
@EnableScheduling
@EnableMBeanExport
@Import({SecurityConfig.class, GeneralDBConfiguration.class})
@ComponentScan(useDefaultFilters = true, basePackages = { "com.yyy", "com.xxx" }, excludeFilters = { @Filter(type = FilterType.ANNOTATION, value = {Controller.class, Configuration.class/*, Aspect.class*/}) })
public class ApplicationContext implements AsyncConfigurer {
// beans etc.
}
Как мне включить часть классов конфигурации пакета io.swagger.configuration
в мое существующее приложение?
Дополнительная информация:
Одна из проблем, с которой я сталкиваюсь, заключается в том, что если я укажу зависимость maven от заглушек домашних животных (которая устанавливается локально, запустив mvn install:install-file ...
из каталога spring-mvc-j8-async
):
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-spring-mvc-server</artifactId>
<version>1.0.0</version>
</dependency>
Затем мое приложение Spring находит два AbstractAnnotationConfigDispatcherServletInitializer
(один из моего приложения и io.swagger.configuration.WebApplication
один из swagger-spring-mvc-server
) и не загружается - дает следующее исключение:
Не удалось зарегистрировать сервлет с именем "диспетчер". Проверьте, есть ли другой сервлет, зарегистрированный под тем же именем.
Я предполагаю, что еще один способ рассказать о моем вопросе - как вы используете серверные заглушки, сгенерированные swagger-codegen
? Похоже, я не могу просто зависеть от пакета maven из коробки...