Подтвердить что ты не робот

Добавление заглушек сервера Swagger в существующее приложение Spring

Каков наилучший способ подключить заглушки сервера, созданные 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 из коробки...

4b9b3361