在我的Spring-Boot Web服务应用程序中,我想使用application.properties中定义的值加载名为 appName 的属性。
@Endpoint
public class RasEndpoint {
private static final String NAMESPACE_URI = "http://www.mycompany.com/schema/ras/ras-request/V1";
@Value("${appName}")
private String appName;
@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getProductRequest")
@ResponsePayload
public GetProductResponse getProduct(@RequestPayload GetProductRequest request) {
System.out.println("appName: " + appName);
GetProductResponse response = generateStubbedOkResponse();
return response;
}
application.properties具有以下条目
appName=ras-otc
我通过主Application类启动应用程序,如下所示
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
然而,当我运行应用程序时,我收到以下错误
引起:java.lang.IllegalArgumentException:无法解决 占位符'appName'在字符串值“$ {appName}”
中
你们知道我做错了吗?
感谢任何帮助。
答案 0 :(得分:1)
正如Dave在上面的评论中提到的,属性文件未加载到类路径中。 属性文件位于/ src / main / resources文件夹中,该文件夹已添加到源中,位于Eclipse IDE中的构建路径下,但是应用了排除规则,阻止将属性文件加载到类路径中。通过删除排除,我能够正确加载属性。