如何在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
答案 0 :(得分:2)
在我看来,@PropertySource
正在使用时,Spring Boot 2.0
注释不是必需的。您可以将位置定义为:
-Dspring.config.additional-location=./conf/override.properties
请参阅Spring Boot 2.0 documentation以获取进一步的参考和说明。
希望这有帮助!