在Spring中,您可以通过在spring.autoconfigure.exclude
属性中定义某些类来将它们排除在自动配置之外。就我而言,我们使用yaml来定义以排除某些类:
spring:
autoconfigure:
exclude: |
org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration,
org.springframework.boot.actuate.autoconfigure.MetricRepositoryAutoConfiguration,
org.springframework.boot.actuate.autoconfigure.MetricsDropwizardAutoConfiguration,
org.springframework.boot.actuate.autoconfigure.MetricsChannelAutoConfiguration,
org.springframework.boot.actuate.autoconfigure.MetricExportAutoConfiguration,
org.springframework.boot.actuate.autoconfigure.PublicMetricsAutoConfiguration
以排除执行器设置。但是,由于这仅需要在某些环境中发生,因此我想外部化此设置并将其作为环境变量传递。 Spring允许您将配置作为SPRING_AUTOCONFIGURE_EXCLUDE
形式的环境变量进行传递,但是在这种情况下如何传递列表?我在externalized configuration的Springs文档中找不到任何能给我答案的东西。
答案 0 :(得分:2)
您可以这样做:
export SPRING_AUTOCONFIGURE_EXCLUDE=org.springframework.boot.actuate.autoconfigure.MetricFilterAutoConfiguration,org.springframework.boot.actuate.autoconfigure.MetricRepositoryAutoConfiguration,org.springframework.boot.actuate.autoconfigure.MetricsDropwizardAutoConfiguration,org.springframework.boot.actuate.autoconfigure.MetricsChannelAutoConfiguration,org.springframework.boot.actuate.autoconfigure.MetricExportAutoConfiguration,org.springframework.boot.actuate.autoconfigure.PublicMetricsAutoConfiguration
您必须在一行中添加所有条目,这有点麻烦,但是应该可以。我已经在其中一个具有很多自动配置类的应用程序中尝试过此操作,并且可以通过这样设置环境变量来排除它们。