Я пытаюсь реализовать Swagger, используя реализацию JHipster в качестве ссылки в моем приложении Kotlin.
Однако, когда я запускаю свои тесты, я получаю следующую ошибку для большинства моихтесты (эти тесты работают нормально, если я уберу этот чванливый код):
Caused by:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pageableParameterBuilderPlugin' defined in class path resource [com/application/config/apidoc/SwaggerPluginsAutoConfiguration$SpringPagePluginConfiguration.class]: Unsatisfied dependency expressed through method 'pageableParameterBuilderPlugin' parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'springfox.documentation.schema.TypeNameExtractor' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
Мой SwaggerPluginsAutoConfiguration
класс:
@Configuration
@ConditionalOnWebApplication
@ConditionalOnBean(Docket::class)
@AutoConfigureAfter(SwaggerAutoConfiguration::class)
class SwaggerPluginsAutoConfiguration {
@Configuration
@ConditionalOnClass(Pageable::class)
class SpringPagePluginConfiguration {
@Bean
@ConditionalOnMissingBean
fun pageableParameterBuilderPlugin(typeNameExtractor: TypeNameExtractor,
typeResolver: TypeResolver): PageableParameterBuilderPlugin {
return PageableParameterBuilderPlugin(typeNameExtractor, typeResolver)
}
}
}
Класс SwaggerAutoConfiguration
:
@Configuration
@ConditionalOnWebApplication
@ConditionalOnClass(ApiInfo::class, BeanValidatorPluginsConfiguration::class, Servlet::class, DispatcherServlet::class)
@Profile(value = [SPRING_PROFILE_SWAGGER])
@EnableSwagger2
@Import(BeanValidatorPluginsConfiguration::class)
class SwaggerAutoConfiguration(applicationProperties: ApplicationProperties) {
...
}
Если я включу профиль swagger
в файл конфигурации моего приложения для тестирования, тесты пройдут.Однако, если профиль отсутствует, тесты завершаются с ошибкой выше.Я не уверен, почему Spring пытается настроить Swagger, если профиль не установлен.
Как я могу настроить это, чтобы конфигурация не пыталась загрузить, если профиль не указан