我对春天还很陌生,所以如果这是一个愚蠢的问题,请原谅。当我尝试启动程序时出现以下错误: java.lang.IllegalArgumentException: Could not resolve placeholder 'appclient' in string value [${appclient}]
。执行以下代码时抛出错误:
package ca.virology.lib2.common.config.spring.properties;
import ca.virology.lib2.config.spring.PropertiesConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
@Configuration
@Import({PropertiesConfig.class})
@PropertySource("${appclient}")
public class AppClientProperties {
private static final Logger log = LoggerFactory.getLogger(AppClientProperties.class);
{
//this initializer block will execute when an instance of this class is created by Spring
log.info("Loading AppClientProperties");
}
@Value("${appclient.port:}")
private int appClientPort;
@Value("${appclient.host:}")
private String appClientHost;
public int getAppClientPort() {
return appClientPort;
}
public String getAppClientHost() {
return appClientHost;
}
}
名为 appclient.properties
的属性文件存在于资源文件夹中,其中包含主机和端口的信息。我不确定 "${appclient}"
在哪里定义,如果有的话。也许它甚至没有定义,这就是导致问题的原因。我是否需要将 "${appclient}"
"{classpath:/appclient.properties}"
类的内容,或者我是否遗漏了其他内容?
原文由 Brkk 发布,翻译遵循 CC BY-SA 4.0 许可协议
您没有正确读取属性文件。 propertySource 应将参数传递为:
file:appclient.properties
或classpath:appclient.properties
。将注释更改为:但是我不知道你的
PropertiesConfig
文件包含什么,因为你也在导入它。理想情况下,@PropertySource
注释应该保留在那里。