我正在使用具有以下属性的Spring Boot application.properties文件:
api.base.url=http://${host}:${port}/api
host=localhost
port=9000
当我使用Maven构建我的项目时,api.base.url正在被正确解析,但有时当application.properties更新并运行我的Spring Boot应用程序而不运行Maven之前,我得到以下异常:
引起:java.lang.IllegalArgumentException:无法解析值“$ {api.base.url}”中的占位符'api.base.url' 在org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174) 在org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) 在org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:236) 在org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) at org.springframework.context.support.PropertySourcesPlaceholderConfigurer $ 2.resolveStringValue(PropertySourcesPlaceholderConfigurer.java:172) 在org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:831)
在我的代码中,我为url注入了一个值:
@Value("${api.base.url}")
private String url;
我是否缺少任何配置以使属性由Spring而不是Maven解决?