Spring Boot 将使用相应的环境变量自动解析 application.properties
文件中的所有 ${ENV}
占位符。
但是,当我通过 PropertiesFactoryBean
文件为 Quartz 配置提供 quartz.properties
时,这种解析不会发生。
@Bean
public Properties getQuartzProperties() throws IOException {
PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
propertiesFactoryBean.setLocation(new ClassPathResource("/quartz.properties"));
propertiesFactoryBean.afterPropertiesSet();
return propertiesFactoryBean.getObject();
}
是否有任何 Spring 方法可以在不使用外部库的情况下替换属性文件中的这些环境变量?
最佳答案
您可以声明一个新类来提供属性(用@Configuration 注释)并提及@PropertySource
@Configuration
@PropertySource("classpath:quartz.properties")
public class QuartzConfig {
//...
}
通过这种方式,您的 spring boot 应用程序可以读取任意数量的属性文件。
关于java - 替换 application.properties 以外的 Spring 属性文件中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651006/