我正在使用 Spring Boot 以及其他 Spring 库,如 spring-data-mongo、执行器、千分尺...
默认情况下,所有自动配置类均已启用。
当我设置
logger.level.root=DEBUG
时,它告诉我很多自动配置类缺少条件。
Spring Boot 调试片段示例:
Neo4jRepositoriesAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required class 'org.neo4j.driver.Driver' (OnClassCondition)
NewRelicMetricsExportAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required class 'io.micrometer.newrelic.NewRelicMeterRegistry' (OnClassCondition)
NoOpMeterRegistryConfiguration:
Did not match:
- @ConditionalOnMissingBean (types: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) found beans of type 'io.micrometer.core.instrument.MeterRegistry' simpleMeterRegistry (OnBeanCondition)
NoopTracerAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required class 'io.micrometer.tracing.Tracer' (OnClassCondition)
OAuth2AuthorizationServerAutoConfiguration:
Did not match:
- @ConditionalOnClass did not find required class 'org.springframework.security.oauth2.server.authorization.OAuth2Authorization' (OnClassCondition)
我想仅激活我需要的 AutoConfiguration 类,并避免评估我不需要的 AutoConfiguration 类。
如何禁用自动配置类并仅激活我需要的自动配置?
有什么想法吗?
您无法禁用所有自动配置,但
@SpringBootApplication
有一个“排除”参数,可以有选择地禁用所有您不想要的。
但正如 @M.Deinum 所写,这不值得。仅向
build.gradle.kts
添加必要的依赖项是 Spring 限制自动加载内容的方法。