基于我自己的问题Bean initialized twice,我在我的两个配置中都包含了过滤器,即MvcConfig
和JPAConfiguration
,以确保所有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"
>
我不知道是谁第二次打电话给他。
这是我的MvcConfig
和JPAConfiguration
@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 {
.
.
.
}