首页 > 解决方案 > Spring Boot @ConditionalOnProperty 没有看到属性覆盖

问题描述

我有一个 Spring Boot 应用程序和一个外部库。应用程序导入库。在库中,属性设置为默认值true。在应用程序中,我想覆盖这个值。库中有一个@Configuration类根据此属性的值有条件地加载。相关类如下所示:

库的配置类:

@Configuration
@EnableConfigurationProperties(LibraryProperties.class)
@ConditionalOnProperty(prefix = "com.foo", name = "enabled", havingValue = "true")
public class LibraryConfiguration {

    // Load the Beans

}

图书馆的application.properties:

com.foo.enabled = ${ENABLE_FOO:true}

应用程序的主类:

@Import(LibraryConfiguration.class)
@SpringBootApplication
public class App {

    public static void main(final String[] args) {
        SpringApplication.run(Appl.class, args);
    }

}

应用程序的application.properties:

com.foo.enabled = false

我的应用程序属性文件中的属性覆盖不起作用;加载库的配置表单。是否在加载我的应用程序属性以覆盖库中的属性之前@ConditionalOnProperty评估注释?

标签: springspring-boot

解决方案


推荐阅读