春季-仅Swagger配置即使使用过滤器也被初始化两次

时间:2018-07-31 16:46:12

标签: java spring swagger-ui

基于我自己的问题Bean initialized twice,我在我的两个配置中都包含了过滤器,即MvcConfigJPAConfiguration,以确保所有Bean都不被初始化两次,并且也可以工作,但对于某些奇怪的原因是,即使添加了过滤器,Swagger配置也会被初始化两次。

这是我的SwaggerConfiguration

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    @Value("${swagger.enabled}")
    private transient String swaggerEnabled;

    @Bean
    public Docket api() {
        System.out.println(swaggerEnabled);
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

现在System out被调用两次,第一次将值设置为"true"-这是我在config.properties中拥有的值,第二次将其设置为"swagger.enabled"

我不知道是谁第二次打电话给他。

这是我的MvcConfigJPAConfiguration

@Configuration
@EnableScheduling
@EnableTransactionManagement
@ComponentScan(
        basePackages = {"com.prime.tutorials"},
        excludeFilters = {
            @ComponentScan.Filter( { Controller.class, ControllerAdvice.class, EnableSwagger2.class })
})
@EnableJpaRepositories(basePackages = {"com.prime.tutorials.model", "com.prime.tutorials.repository"})
public class JPAConfiguration {
    .
    .
    .
}

@EnableWebMvc
@Configuration
@ComponentScan(
        basePackages = {"com.prime.tutorials"},
        useDefaultFilters = false,
        includeFilters = {
            @ComponentScan.Filter( { Controller.class, ControllerAdvice.class, EnableSwagger2.class })
})
public class MvcConfig extends WebMvcConfigurerAdapter {
    .
    .
    .
}

0 个答案:

没有答案