如何在springboot 2.0中加载外部覆盖属性文件?

时间:2018-04-01 03:36:10

标签: spring-boot apache-camel

如何在springboot 2.0中加载外部/覆盖属性文件?

注意:此问题仅针对2.0。

在springboot 1.5中,我使用以下内容来覆盖属性

hoverdivs = [ { status: false }, { status: false }, { status: false }, { status: false }, { status: false }, ]

但是我得到了:

@Configuration
@PropertySource(value = "file:/var/tmp/${spring.application.name}/${MYAPP_PROFILE:h2}/conf/override.properties", ignoreResourceNotFound = true)
class AppConfig {
    @Bean
    public PropertyPlaceholderConfigurer placeholderConfigurer() {
        PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
        configurer.setIgnoreUnresolvablePlaceholders(true);
        return configurer;
    }
}

编辑:

感谢您指出。看起来@PropertySource可能不是原因。可能是因为Apache Camel与Springboot 2.0不兼容

Caused by: java.lang.ClassNotFoundException: org.springframework.boot.bind.RelaxedPropertyResolver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 43 more

1 个答案:

答案 0 :(得分:2)

在我看来,@PropertySource正在使用时,Spring Boot 2.0注释不是必需的。您可以将位置定义为:

-Dspring.config.additional-location=./conf/override.properties

请参阅Spring Boot 2.0 documentation以获取进一步的参考和说明。

希望这有帮助!